MySql 将行放入单个 JSON 对象

MySql get rows into single JSON object

我有 table:

 -------+-------
| param | value |
|-------+-------|
|     A |  200.5|
|     B |   70.2|
 ---------------

当我执行时:

select json_object(`param`, `value`) from `table`

我明白了:

{"A": "200.5"}
{"B": "70.2"}

但我想要这个:

{
 "A": "200.5",
 "B": "70.2"
}

您可以使用 json aggregate function json_objectagg(),自 MySQL 5.7:

起可用
select json_objectagg(param, value) js from mytable

Demo on DB Fiddle:

| js                      |
| :---------------------- |
| {"A": 200.5, "B": 70.2} |

在 json 聚合函数不可用的早期版本中,您可以进行字符串连接:

select concat('{', group_concat('"', param, '": ', value separator ', '), '}') js
from mytable

Demo on DB Fiddle

我假设您不想直接从 MySQL 服务器获得此结果,如果是这样的话,最接近答案的是 .

如果您不介意进一步获取结果,您可以随时使用您选择的语言对其进行解析。

希望对您有所帮助。