按逗号分隔列表排序,视为整数

时间:2016-02-13 07:03:42

标签: mysql sorting

我有一个查询通过组concat获取排序顺序。它以逗号分隔的列表返回排序顺序,该列表具有完美设置的所有内容。通过逗号分隔列表ALMOST排序完美。但是,它会将逗号分隔列表中的每组数据视为char。

这意味着在排序时它会像这样:

1,0
10,0
11,0
12,0
13,0
14,0
15,0
16,0
17,0
18,0
19,0
2,0
21,0
3,0
4,0
5,0
6,0
7,0
8,0
9,0

而不是正确的顺序:

1,0
2,0
3,0
4,0
5,0
6,0
7,0
8,0
9,0
10,0
11,0
...    
20,0
21,0

如何强制mysql将这些视为整数?当有多个非常相似的值时,它需要正确排序。例如:

0,0
0,1
0,2
1,0
2,0
2,1
3,5
4,2
etc

第一个值始终设置第一个位置,然后第二个值设置下一个位置,依此类推。

列表可以在1个单值和2-3个或更多之间变化......但它总是用数字填充。我已经查看了substring_index,临时表​​,转换等等。似乎没有什么工作。它很奇怪,因为否则mySQL可以很好地排序。

0 个答案:

没有答案