我有以下格式的示例编号:
1.1
1.1.4
1.1.5
2.1
2.1.10
2.1.23
3.1a
3.1b
4.1.5
4.2.6
4.7.12
如何在 MySQL 中对其进行排序?我可以从 $sort 命令行选项轻松做到这一点,但在 MySQL 中似乎没有任何作用
最佳答案
如果您将字符串分成多个部分并按每个相关部分排序,它可能会起作用。
SELECT data
FROM example
ORDER BY
CAST(SUBSTRING_INDEX(data, '.', 1) AS BINARY) ASC,
CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data , '.', 2), '.', -1) AS BINARY) ASC,
CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data , '.', -1), '.', 1) AS BINARY) ASC;
不能说我支持在 MySQL 中做类似的事情,但我想它会让你到达你需要的地方,至少对于我的测试数据。请记住,如果更改字符串中的元素数量,则需要编辑数字。
关于mysql自然排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729441/