mysql - una - php json select




Cómo convertir la tabla de resultados a la matriz JSON en MySQL (2)

Con la ayuda de @Schwern logré realizar esta consulta, ¡que parece funcionar!

SELECT CONCAT(
    '[', 
    GROUP_CONCAT(JSON_OBJECT('name', name, 'phone', phone)),
    ']'
) 
FROM person;

Me gustaría convertir la tabla de resultados a la matriz JSON en MySQL usando preferentemente solo comandos simples de MySQL. Por ejemplo con consulta

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |

La salida esperada de JSON sería

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]

¿Hay manera de hacerlo en MySQL simple?

EDITAR:

Hay algunas respuestas sobre cómo hacer esto con, por ejemplo, MySQL y PHP , pero no pude encontrar una solución pura de MySQL.


Puede usar json_object para obtener filas como objetos JSON.

SELECT json_object('name', name, 'phone', phone)
FROM person;

Esto no los pondrá en una matriz, ni pondrá comas entre ellos. Tendrás que hacer eso en el código que los está buscando.





json