显示异常的SQL排序用法
SELECT userNumber FROM USER ORDER BY userNumber
运行后结果
0501
0502
0503
0504
0505
0506
05061
05062
05063
05064
05065
0507
0508
05081
0509
0510
0511
0512
0513
0514
0515
0516
会发现很怪异,为什么5位数的值在4位数的值的上面
显示异常原因
原因其实很简单SQL在对TEXT进行排序的时候,是进行的逐个字符比较,想要要他显示正常一点我们可以使用length()函数
使用length()后
SELECT userNumber FROM USER ORDER BY length(userNumber), userNumber
运行结果
0501
0502
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
05061
05062
05063
05064
05065
05081