我有下表:
+----+-----------------------------------------+----------+
| id | sort | channel |
+----+-----------------------------------------+----------+
| m2 | ["m2","1","2","11","m4","m3","m5","m1"] | E |
| 2 | ["m2","1","2","11","m4","m3","m5","m1"] | H2 |
| 1 | ["m2","1","2","11","m4","m3","m5","m1"] | H1 |
| 11 | ["m2","1","2","11","m4","m3","m5","m1"] | H3 |
| m4 | ["m2","1","2","11","m4","m3","m5","m1"] | S1 |
| m3 | ["m2","1","2","11","m4","m3","m5","m1"] | C3 |
| m5 | ["m2","1","2","11","m4","m3","m5","m1"] | M4 |
| m1 | ["m2","1","2","11","m4","m3","m5","m1"] | G6 |
+----+-----------------------------------------+----------+
使用MySQL查询:
SELECT id, sort, channel FROM (SELECT s.id, c.sort, s.channel FROM streams s, channels c WHERE JSON_SEARCH(s.bouquet, 'one', 1) IS NOT NULL AND JSON_SEARCH(c.bouquet, 'one', 1) IS NOT NULL AND JSON_SEARCH(c.sort, 'one', s.id) IS NOT NULL UNION SELECT m.marker, c.sort, m.channel FROM markers m, channels c, streams s WHERE JSON_SEARCH(m.bouquet, 'one', 1) IS NOT NULL AND JSON_SEARCH(c.bouquet, 'one', 1) IS NOT NULL AND JSON_SEARCH(c.sort, 'one', m.marker) IS NOT NULL) ch ORDER BY LOCATE(id, CONCAT("'", sort, "'"));
我高于表格结果,我需要使用sort字段对id进行排序...因此输出必须是:
| id |
------
m2
1
2
11
m4
m3
m5
m1
我认为问题出在:ORDER BY LOCATE(id, CONCAT("'", sort, "'"))
,但我尝试修改查询而没有获得期望的输出成功...要达到正确的输出水平,我需要做些什么?
答案 0 :(得分:1)