Use o
JSON_OBJECT()
função:SELECT JSON_OBJECT('id', id, 'name', name, 'age', age)
FROM person
WHERE id = 1;
Isso requer pelo menos MySQL 5.7 ou MariaDB 10.2.3, quando todas as funções relacionadas a JSON foram adicionadas.
Se você não quiser codificar os nomes das colunas na consulta, precisará escrever um procedimento armazenado que crie SQL dinâmico, usando
INFORMATION_SCHEMA.COLUMNS
para obter todos os nomes das colunas.