创建MySQL空间列 - 使用lat long的Point Data类型,而不使用Alter表

时间:2016-09-21 09:39:18

标签: mysql spatial

如何使用" Point"创建MySQL空间列?使用纬度和数据的数据类型使用CREATE语句的经度。 (不使用Alter)

我是否还需要存储纬度和经度,还是可以将两个值插入Point(x,y)字段并删除纬度​​/经度列?我现在阅读的例子保留了lat长字段。

请分享一些例子。

1 个答案:

答案 0 :(得分:1)

点数字段包含存储在其中的纬度和经度数据,如果需要,可以很容易地检索它们。假设您的点数字段是名称pt,则以下查询提供此信息。

SELECT ST_Y(pt), ST_X(pt) FROM my_spatial_table;

这与做

完全相同
SELECT Y(pt), X(pt) FROM my_spatial_table;

因为X and ST_X是别名。所以简而言之,你只需要点场。

您可以按如下方式添加您的pt字段:

ALTER TABLE my_table ADD COLUMN GEOMETRY;

然后您可以从现有纬度和经度列移动数据,如下所示:

UPDATE my_table SET pt = PointFromText(CONCAT('POINT(',longitude,' ',latitude,')'))

有关详细信息,请参阅:https://stackoverflow.com/a/7135890/267540
http://dev.mysql.com/doc/refman/5.7/en/populating-spatial-columns.html