我有以下几点 MySQL
json查询:
SELECT
json_object('personId', p.id, 'personName', p.name, 'personAge', p.age)
FROM
PEOPLE p;
我注意到了 json_object
不按查询中枚举的顺序返回字段,是否可以更改?如果我要同样的订单,我可以吗?
例如,输出可以是:
{
"personAge": 35,
"personId": 12,
"personName": "john"
}
但我希望它永远是:
{
"personId": 12,
"personName": "john",
"personAge": 35
}
1条答案
按热度按时间ql3eal8s1#
我认为你不能管理生成的密钥的顺序
JSON
. 如果我们提到这一点:json值的规范化、合并和自动 Package ,我们可以看到JSON
值包括下一个逻辑:为了提高查找效率,它还对json对象的键进行排序。您应该知道,此订购的结果可能会发生更改,并且不能保证在各个版本中保持一致。
然后,在后面的一段中,我们可以看到:
生成json值的mysql函数(参见第12.17.2节“创建json值的函数”)总是返回标准化值。
总之,
json_object()
是一个返回JSON
值,此值将被规范化,并且部分规范化过程可能会影响JSON keys
.