Имате нужда от функции за конкатенация като CONCAT_WS()
и CONCAT
за свързване на колоните на всеки ред и след това агрегиране с GROUP_CONCAT()
за всяко name
:
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Вижте демонстрацията .