Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL字母数字字符串的顺序,优先于数字,然后是尾随的非数字字符_Mysql_Sql Order By - Fatal编程技术网

MySQL字母数字字符串的顺序,优先于数字,然后是尾随的非数字字符

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

我有这个问题。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 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

完美!非常感谢你!