我想在MySQL中将结果表转换为JSON数组,最好只使用普通的MySQL命令.例如查询
SELECT name, phone FROM person; | name | phone | | Jack | 12345 | | John | 23455 |
预期的JSON输出将是
[ { "name": "Jack", "phone": 12345 }, { "name": "John", "phone": 23455 } ]
有没有办法在普通的MySQL中做到这一点?
编辑:
有一些答案如何使用例如MySQL和PHP,但我找不到纯MySQL解决方案.
在@Schwern的帮助下,我设法提出了这个查询,这似乎有效!
SELECT JSON_ARRAYAGG(JSON_OBJECT('name', name, 'phone', phone)) from Person;
您可以使用json_object将行作为JSON对象获取.
SELECT json_object('name', name, 'phone', phone) FROM person;
这不会将它们放在数组中,也不会在它们之间加上逗号.您必须在获取它们的代码中执行此操作.