2015-09-06 7 views
0

Если многие точки хранятся как геометрия в поле как многоточечное, как SELECT (и конвертировать) все точки?Преобразование многоточечного в точку в MySQL

Но без процедуры, while или loop, потому что они слишком медленны и не преобразуются в String Conversion.

Например: в # 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 таблицу, которая будет просто держать номера из .. Максимальное количество баллов, по вашему мнению, можно для каждого MultiPoint:

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

Теперь, когда мы решили что вы можете использовать следующий запрос, чтобы разбить MultiPoint на точки:

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

 Смежные вопросы

  • Нет связанных вопросов^_^