mysql - 如何在 MySQL 中将结果表转换为 JSON 数组

我想将结果表转换为 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 and PHP ,但我找不到纯 MySQL 解决方案。

最佳答案

新解决方案:

使用您的精彩评论构建,谢谢!

SELECT JSON_ARRAYAGG(JSON_OBJECT('name', name, 'phone', phone)) from Person;

旧解决方案:

在@Schwern 的帮助下,我设法提出了这个查询,这似乎有效!

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

https://stackoverflow.com/questions/41758870/

相关文章:

javascript - 使用来自 JSON 数据的不同值,而不是使用 Typeahead 的 di

json - 如何在 Perl 中将简单的哈希转换为 json?

php - 在 JSON 编码的 HTML5 数据属性中转义/编码单引号

jquery - 将序列化表单的数据转换为 json 对象

java - 从 json 文本文件加载 JSONObject 的最佳方法是什么?

javascript - Socket.io 如何发送 JavaScript 对象

java - JSON键是否需要唯一?

java - Spring 3.2 测试,com.jajway 不包含在依赖项中

javascript - 使用带有 javascript 的对象使用 JSON 数组

json - Spring Security 和 JSON 身份验证