MySQL stöder inte ANSI PIVOT/UNPIVOT-syntax, så det låter dig använda:
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
Som du kan se måste CASE-satserna definieras per värde. För att göra detta dynamiskt måste du använda MySQL:s Prepared Statement (dynamisk SQL) syntax .