Du behöver sammanlänkningsfunktioner som CONCAT_WS()
och CONCAT
för att sammanfoga kolumnerna i varje rad och sedan aggregera med GROUP_CONCAT()
för varje name
:
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Se demon .