2

我有一个带有“地址”字段的 MySQL 表,地址格式为:

StreetName 1
StreetName 10
StreetName 34
Streetname 8

如何使 MySQL Query 产生结果:

StreetName 1
Streetname 8
StreetName 10
StreetName 34

在这种情况下,简单的“按地址排序”不起作用,因为“StreetName 8”在“StreetName 34”之后。

4

1 回答 1

0

如果街道名称没有任何空格,这应该可以

SELECT * FROM table
ORDER BY CAST(SUBSTRING(address,LOCATE(' ',address)+1) AS UNSIGNED)

更新:如果街道名称有空格,但数字总是在末尾,前面有一个空格,例如。S Av 2N Pike Street 5,你可以试试这个..

SELECT * FROM table
ORDER BY CAST(SUBSTRING_INDEX(address,' ', -1) AS UNSIGNED)

我还假设街道号码将是无符号的(不是负数)。给你一个小提琴..

于 2013-06-15T16:33:15.377 回答