检索MySQL点类型的坐标

时间:2011-06-04 20:25:36

标签: mysql

我使用类似的东西在MySQL中存储lat / long对:

GeomFromText('POINT(32 -122)')

鉴于这一点,我如何检索单个X / Y坐标?

2 个答案:

答案 0 :(得分:36)

假设您在名为GeomFromText('POINT(32 -122)')的表格中将MY_POINT列为名为MY_TABLE的列。

获取X坐标(在此示例中将返回32):

SELECT ST_X(MY_POINT) as latitude FROM MY_TABLE;

获取Y坐标(在此示例中将返回-122):

SELECT ST_Y(MY_POINT) as longitude FROM MY_TABLE;

重要:在5.6版之前,使用X()和Y()代替ST_X()和ST_Y()。

答案 1 :(得分:1)

假设您将 GeomFromText('POINT(32 -122)') 作为名为 MY_POINT 的列存储在名为 MY_TABLE 的表中。 获取点数据的方法有多种。

  • 首先检查 MySQL 版本

    SELECT VERSION()

  • 对于 MySQL 5.6 或更早版本使用

    SELECT X(MY_POINT) AS Latitude, Y(MY_POINT) AS Longitude FROM MY_TABLE

  • 对于 MySQL 5.7 版本使用,虽然之前的命令也被识别。

    SELECT ST_X(MY_POINT) AS Latitude, ST_Y(MY_POINT) AS Longitude FROM MY_TABLE

  • 对于 MySQL 8.0 版本使用,虽然之前的命令也可以识别。主要区别在于此命令适用于具有地理空间参考系统 (SRS) 的 Point 对象。

    SELECT ST_Latitude(MY_POINT) AS Latitude, ST_Longitude(MY_POINT) AS Longitude FROM MY_TABLE

希望这会有所帮助。