MySQL ne prend pas en charge la syntaxe ANSI PIVOT/UNPIVOT, ce qui vous laisse utiliser :
SELECT t.userid
MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
FROM TABLE t
GROUP BY t.userid
Comme vous pouvez le voir, les instructions CASE doivent être définies par valeur. Pour rendre cela dynamique, vous devez utiliser Syntaxe de l'instruction préparée de MySQL (SQL dynamique) .