Hai bisogno di funzioni di concatenazione come CONCAT_WS()
e CONCAT
per concatenare le colonne di ogni riga e poi aggregare con GROUP_CONCAT()
per ogni name
:
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Vedi la demo .