2017-03-01 82 views
1

我搜索了并找不到完全符合我需求的解决方案。我有一个需要修改的mysql命令,但是我被卡住了。下面的代码按街道名排序,但我也需要它按#排序。这里是我的代码有:Mysql命令按街道名称对地址进行排序,然后编号

SELECT * from property_details 
ORDER BY SUBSTR(LTRIM(address), LOCATE(' ',LTRIM(address))) ASC 

但这样做的:

320 Booken Pine 
803 E. Cordy Ct. 
2046 Last Fine Court 
2000 Last Fine Court 
2019 Last Fine Court 
27-A Persons Alley 
27-B Persons Alley 

,我需要它这样做:

320 Booken Pine 
803 E. Cordy Ct. 
2000 Last Fine Court 
2019 Last Fine Court 
2046 Last Fine Court 
27-A Persons Alley 
27-B Persons Alley 

任何帮助,不胜感激。先进的非常感谢你。

回答

0

您需要第二个ORDER BY条件来按照数字对具有相同街道名称的行进行排序。

SELECT * from property_details 
ORDER BY SUBSTR(LTRIM(address), LOCATE(' ',LTRIM(address))) ASC, 
     LEFT(address, LOCATE(' ',LTRIM(address)) ASC 
+0

谢谢Barmar的帮助!但是,在交换出mysql命令后,在我的php中,它不再显示列表。是否因为在某处丢失了括号或逗号? – tannerj

+0

啊,它是一个支架 - 我补充说,它运行谢谢!还有一件事: – tannerj

+0

...有一件事 我注意到14 Prim Way先于5 Prim Way。我如何才能切换它,因为5小于14?编辑:我知道了!对于任何想要查看它是如何完成的人,这里是: SELECT * from property_details ORDER BY SUBSTR(LTRIM(address),LOCATE('',LTRIM(address)))ASC,convert(SUBSTRING_INDEX(address,' ',1),UNSIGNED INTEGER) 再次感谢Barmar--如果没有你,我无法做到! – tannerj

相关问题