Potrzebujesz funkcji konkatenacji, takich jak CONCAT_WS()
i CONCAT
do łączenia kolumn każdego wiersza, a następnie agregacji za pomocą GROUP_CONCAT()
dla każdego name
:
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Zobacz demo .