Necesita funciones de concatenación como CONCAT_WS()
y CONCAT
para concatenar las columnas de cada fila y luego agregarlas con GROUP_CONCAT()
para cada name
:
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Vea la demostración .