Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持mysql json查询的字段顺序_Mysql - Fatal编程技术网

保持mysql json查询的字段顺序

保持mysql json查询的字段顺序,mysql,Mysql,我有以下MySQLjson查询: SELECT json_object('personId', p.id, 'personName', p.name, 'personAge', p.age) FROM PEOPLE p; 我注意到json\u object没有按照查询中枚举的顺序返回字段,这可能会改变吗?如果我想要同样的订单,我可以吗 例如,输出可以是: { "personAge": 35, "personId": 12, "personName": "john" } 但

我有以下
MySQL
json查询:

SELECT
  json_object('personId', p.id, 'personName', p.name, 'personAge', p.age)
FROM
  PEOPLE p;
我注意到
json\u object
没有按照查询中枚举的顺序返回字段,这可能会改变吗?如果我想要同样的订单,我可以吗

例如,输出可以是:

{
  "personAge": 35,
  "personId": 12,
  "personName": "john"
}
但我希望它永远是:

{
  "personId": 12,
  "personName": "john",
  "personAge": 35
}

我认为您无法管理生成的
JSON
的密钥顺序。如果我们参考以下内容:,我们可以看到规范化
JSON
值的步骤之一包括下一个逻辑:

为了提高查找效率,它还对JSON对象的键进行排序。您应该知道,此订购的结果可能会发生更改,并且不能保证在各个版本之间保持一致

然后,在后面的一段中,我们可以看到:

生成JSON值的MySQL函数(参见第12.17.2节“创建JSON值的函数”)始终返回规范化值


总之,
json_object()
是一个返回
json
值的函数,该值将被规范化,规范化过程的一部分可能会影响
json键的顺序

请提供一个数据示例,这个查询从该示例中输出什么,json_对象不按查询顺序返回字段是什么意思?Shidersz补充道:“通常情况下,表people中的每行都有一个JSON对象,从您的角度来看,有什么不对?”example@GMB补充example@JohnBigs您是否碰巧找到了管理订购的解决方案?