2017-02-15 47 views
0

说我有一个表需要位置为POINT的表SpatialItem,我如何从经度和纬度插入值?如何从两个值中插入POINT

CREATE TABLE SpatialItem (
    itemId  INTEGER NOT NULL, 
    position POINT 
) ENGINE = MyISAM; 

应该是这样的:

INSERT INTO SpatialItem 
(itemId position=POINT(Latitude, Longtitude)) 
SELECT ItemID Latitude Longtitude 
FROM Item; 
+0

请参阅https://dev.mysql.com/doc/refman/5.7/en/using-spatial-data.html(对不起,在手机上)。另外,MyISAM有很多缺点。 – Schwern

+0

你可能想问问在gis.stackexchange.com –

+0

@Schwern我使用MySQL5.5,其中MyISAM是唯一一个支持空间索引。我检查了文档,只是不知道如何在INSERT SELECT中使用“set” –

回答

0

插入与选择作品的选择映射列直接到田插入。来自select的字段必须与插入期望的字段对齐。

这意味着它是必须将纬度和经度转换为点的选择。

INSERT INTO SpatialItem 
(itemId, position) 
SELECT ItemID, POINT(Latitude, Longtitude) 
FROM Item