MYSQL查询对GPS坐标进行排序

Posted

技术标签:

【中文标题】MYSQL查询对GPS坐标进行排序【英文标题】:MYSQL query to sort GPS coordinates 【发布时间】:2013-09-25 08:48:06 【问题描述】:

我有一个包含“gps”列的表格,它有逗号分隔的纬度和经度值。 (纬度,经度) 如果我想按纬度和经度对表格进行排序,我该怎么做?

更新:我可以按纬度排序

ORDER BY gps*1 asc/desc

但我也想按经度排序

如果我有两个单独的纬度和经度列,那会很容易,但我没有。

谁能帮我解决这个问题?

提前致谢

【问题讨论】:

【参考方案1】:

试试SUBSTRING_INDEX:

SELECT SUBSTRING_INDEX(gps, ',', 1)  AS longitude,
       SUBSTRING_INDEX(gps, ',', -1) AS latitude
FROM   yourtable
ORDER  BY longitude,
          latitude  

【讨论】:

我不知道我应该接受哪个答案... :) 两者都是一样的【参考方案2】:

您应该使用substring_index 来定位longitudelatitude

编辑:

select
SUBSTRING_INDEX(longitude_and_latitude, ',', 1) as longitude,
SUBSTRING_INDEX(longitude_and_latitude, ',', -1) as latitude
from MY_TABLE
order by 1,2 

【讨论】:

在字段名周围使用反引号。 这么急着回答 ;)

以上是关于MYSQL查询对GPS坐标进行排序的主要内容,如果未能解决你的问题,请参考以下文章

mysql 使用内部连接优化查询,其中和排序依据和坐标

如何在Mysql查询中通过PHP对加密数据进行排序

MySQL ORDER BY:对查询结果进行排序

21《MySQL 教程》ORDER BY 排序

MYSQL 查询数据排序数据和分组数据

MySql排序查询将null放在最后的解决办法