Ce n'est pas assez (mais ni est les données), mais cela ne fonctionnera que si vos noms de colonnes sont connus lorsque vous écrivez la requête:
SELECT
RecordId,
group_concat(if(FieldName = 'name', FieldValue, '') SEPARATOR '') AS person_name,
group_concat(if(FieldName = 'age', FieldValue, '') SEPARATOR '') AS person_age
FROM test_table
GROUP BY RecordId
(fonctionne dans MySQL 5.0)
vous devez également utiliser CAST pour obtenir les champs au type correct
Si vous ne connaissez pas les champs, vous aurez besoin de (Programatically) faire une sélection FieldName distincte à l'avance afin de construire votre requête
J'ai le sentiment que le fait quelque chose assez similaire à ce
Attention l'effet de plate-forme interne: http://en.wikipedia.org/wiki/Inner-platform_effect – Jamiec