我有一个带有“地址”字段的 MySQL 表,地址格式为:
StreetName 1
StreetName 10
StreetName 34
Streetname 8
如何使 MySQL Query 产生结果:
StreetName 1
Streetname 8
StreetName 10
StreetName 34
在这种情况下,简单的“按地址排序”不起作用,因为“StreetName 8”在“StreetName 34”之后。
如果街道名称没有任何空格,这应该可以
SELECT * FROM table
ORDER BY CAST(SUBSTRING(address,LOCATE(' ',address)+1) AS UNSIGNED)
更新:如果街道名称有空格,但数字总是在末尾,前面有一个空格,例如。S Av 2
等N Pike Street 5
,你可以试试这个..
SELECT * FROM table
ORDER BY CAST(SUBSTRING_INDEX(address,' ', -1) AS UNSIGNED)
我还假设街道号码将是无符号的(不是负数)。给你一个小提琴..