保存

时间:2018-01-22 13:15:53

标签: mysql json mysql-json

我在MySQL数据库表中使用JSON列类型。当我尝试在表列中保存JSON值时,JSON数组会自动重新排序(shuffle)

我有以下JSON:

{"TIMER_HEADER": [{"XX!TIMERHDR": "XXTIMERHDR", "VER": " 7", "REL": " 0", "COMPANYNAME": "XXX", "IMPORTEDBEFORE": "N", "FROMTIMER": "N", "COMPANYCREATETIME": "12423426"}, {"XX!HDR": "XXHDR", "PROD": "Qics for Wnows", "VER": "Version 6.0", "REL": "Release R", "IIFVER": "1", "DATE": "2018-01-20", "TIME": "1516520267",   "ACCNTNT": "N", "ACCNTNTSPLITTIME": "0"}], "COLUMN_HEADER": ["!TIMEACT", "DATE", "JOB", "EMP", "ITEM", "PITEM", "DURATION", "PROJ", "NOTE", "BILLINGSTATUS"]}

保存在MySql表的JSON列中后,变为:

{"TIMER_HEADER": [{"REL": " 0", "VER": " 7", "FROMTIMER": "N", "COMPANYNAME": "XXX", "XX!TIMERHDR": "XXTIMERHDR", "IMPORTEDBEFORE": "N", "COMPANYCREATETIME": "12423426"}, {"REL": "Release R", "VER": "Version 6.0", "DATE": "2018-01-20", "PROD": "Qics for Wnows", "TIME": "1516520267", "IIFVER": "1", "XX!HDR": "XXHDR", "ACCNTNT": "N", "ACCNTNTSPLITTIME": "0"}], "COLUMN_HEADER": ["!TIMEACT", "DATE", "JOB", "EMP", "ITEM", "PITEM", "DURATION", "PROJ", "NOTE", "BILLINGSTATUS"]}

我需要与原版相同的订单,因为第三方有验证。

请帮忙。感谢。

1 个答案:

答案 0 :(得分:5)

MySQL manual说:

  

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

没有标准表明它必须按特定顺序排列,所以最好的办法是与第三方的某人交谈以调整验证。