2017-02-15 46 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