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
| js |
| :---------------------- |
| {"A": 200.5, "B": 70.2} |
在 json 聚合函数不可用的早期版本中,您可以进行字符串连接:
select concat('{', group_concat('"', param, '": ', value separator ', '), '}') js
from mytable
我假设您不想直接从 MySQL 服务器获得此结果,如果是这样的话,最接近答案的是 .
如果您不介意进一步获取结果,您可以随时使用您选择的语言对其进行解析。
希望对您有所帮助。
我有 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
| js | | :---------------------- | | {"A": 200.5, "B": 70.2} |
在 json 聚合函数不可用的早期版本中,您可以进行字符串连接:
select concat('{', group_concat('"', param, '": ', value separator ', '), '}') js
from mytable
我假设您不想直接从 MySQL 服务器获得此结果,如果是这样的话,最接近答案的是
如果您不介意进一步获取结果,您可以随时使用您选择的语言对其进行解析。
希望对您有所帮助。