2015-09-06 37 views
0

如果許多點以多點形式存儲爲場中的幾何體,如何選擇(並轉換)所有點?將多點轉換爲MySQL中的點

但是沒有程序,while或loop,因爲它們太慢了,沒有字符串轉換。

例如:在#1表

MULTIPOINT(48 16,49 16,50 16) 

我想achieveve像一個結果:

id |  point 
1 | POINT(48 16) 
2 | POINT(49 16) 
3 | POINT(50 16) 
+0

它需要在mysql裏面嗎?您可以在後端使用此轉換 – jewelhuq

回答

0

唯一的 「絕招」 這裏產生自然數的序列。對於 - 你最好的選擇是創建一個numbers表會簡單地從持有數.. 最大點數你認爲有可能對每個多點

CREATE TABLE `numbers` (
    id int, 
    PRIMARY KEY (`id`) 
); 
INSERT INTO `numbers` VALUES (1),(2),(3),(4),(5); /* ... as many as needed */ 

現在,我們解決那麼,你可以使用下面的查詢來將多點斷點:

SELECT `numbers`.`id`, AsText(GeometryN(`geometryFieldName`, `numbers`.`id`)) 
FROM `geometryTableName` 
INNER JOIN `numbers` ON 
    (`numbers`.`id` <= NumGeometries(`geometryFieldName`))