2016-10-09 161 views
0

我有一個正常的表。現在我增加了一個空間列MySQL空間查詢

ALTER TABLE roadData ADD pt POINT ; 

,現在我的表中有空值: enter image description here

現在MySQL的教程INSERT語句用於:

INSERT INTO geom VALUES (ST_GeomFromText('POINT(1 1)')); 

,但我想這樣做在已存在的表格中刪除空值並在每行中插入基於緯度和經度的點數據。像

INSERT INTO pt VALUES (ST_GeomFromText('POINT(latitude longitude)')); 

並且還做一個空間索引。我該怎麼做?

回答

1

這是一個UPDATE STATEMENT而不是INSERT STATEMENT,試試這個:

UPDATE geom t 
SET t.pt = ST_GeomFromText(CONCAT('POINT(',t.longitude,t.latitude,')')) 
+0

感謝鷺其實答案ü告訴了CROSS JOIN正在採取大量的時間。所以@bamar說要使用空間來試試。 –

+0

和ALTER TABLE geom ADD SPATIAL INDEX(g);用於創建索引 –

+0

對於空間索引:ALTER TABLE roadData ADD SPATIAL INDEX(pt); –