MySQL字母数字字符串的顺序,优先于数字,然后是尾随的非数字字符
我有这个问题。MySQL数据库中的一列包含以下数据: 1. 10 100 102 1020 1022 1023 1024 1025 1025A 1026A . . 我通过以下查询获得了正确的数字排序:MySQL字母数字字符串的顺序,优先于数字,然后是尾随的非数字字符,mysql,sql-order-by,Mysql,Sql Order By,我有这个问题。MySQL数据库中的一列包含以下数据: 1. 10 100 102 1020 1022 1023 1024 1025 1025A 1026A . . 我通过以下查询获得了正确的数字排序: SELECT DISTINCT LPAD(ubicazione, 8, '0') FROM t_ubicazione ORDER BY LPAD(ubicazione, 8, '0') ASC; 这给了我这个结果: 00000001 00000017 00000018 00000019
SELECT DISTINCT LPAD(ubicazione, 8, '0') FROM t_ubicazione ORDER BY LPAD(ubicazione, 8, '0') ASC;
这给了我这个结果:
00000001 00000017 00000018 00000019 0000001A 0000001B 0000001M 0000001S 00000021 00000022
我的问题是0000001A应该在00000001之后,所以正确的顺序应该是:
00000001
0000001A
0000001B
0000001M
0000001S
00000017
00000018
00000019
00000021
00000022
如何获得此结果?您可以通过隐式转换将列的数字部分作为整数
ubicazione+0
,然后按该值排序,然后再ubicazione
:
SELECT ubicazione
FROM t_ubicazione
ORDER BY ubicazione + 0, ubicazione;
请参阅。选择ubicazione
来自t_ubicazione
按演员顺序(ubicazione未签名),ubicazione完美!非常感谢你!