在不使用Alter表的情况下创建MySQL空间列点数据类型lat long



如何创建一个MySQL空间列与"点"数据类型使用纬度&使用CREATE语句。(不使用Alter)

我是否需要存储纬度和经度,或者我可以插入两个值到Point(x,y)字段,并摆脱纬度/经度列?到目前为止,我所读的示例都保留了后面的长字段。

请分享一些例子

point字段中存储了纬度和经度数据,如果需要,可以很容易地检索它们。假设您的点字段是名称pt,下面的查询给出了该信息。

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

这与

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

,因为X和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

相关内容

  • 没有找到相关文章

最新更新