我有一个包含排序 json 数值的表,我需要使用定义的 json 排序号对 id 进行排序...所以我有这样的表:
+----+------------+-----------------+
| id | channel | sort |
+----+------------+-----------------+
| 1 | US_CH 1 | ["1", "2", "4"] |
| 4 | US_CH 4 | ["1", "2", "4"] |
| 2 | US_CH 2 | ["1", "2", "4"] |
+----+------------+-----------------+
并且想要得到这个:
+----+------------+-----------------+
| id | channel | sort |
+----+------------+-----------------+
| 1 | US_CH 1 | ["1", "2", "4"] |
| 2 | US_CH 2 | ["1", "2", "4"] |
| 4 | US_CH 4 | ["1", "2", "4"] |
+----+------------+-----------------+
所以重点是通过数组中 json 排序值的值来获取 ID 排序。我知道排序 json 值不是 json 结构,但我需要使用这个数字,因为我正在工作 channel 编辑器,它更新和添加具有 5000 条记录的 channel (enigma2 stb),所以我需要使用这个数字,因为它将在中存储小数据数据库,插入和更新会更快。
我尝试使用 JSON_SEARCH 提取单个值,但我需要所有值,以便我可以使用 ORDER BY JSON_EXTRACT(sort, '$[extractnumbers]')
最佳答案
试试这个:
ORDER BY LOCATE(sort, CONCAT('"', id, '"'))
关于MySQL 查询 - 通过 JSON 值获取订单 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292294/