Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Criar coluna espacial MySQL - tipo de dados de ponto com lat long sem usar a tabela Alter


O campo de ponto tem os dados de latitude e longitude armazenados dentro dele e eles podem ser recuperados facilmente, se necessário. Supondo que seu campo de ponto seja nome pt, a consulta a seguir fornece essa informação.
SELECT ST_Y(pt), ST_X(pt) FROM my_spatial_table;

Isso é exatamente o mesmo que fazer
SELECT Y(pt), X(pt) FROM my_spatial_table;

desde X e ST_X são apelidos. Então, em suma, você só precisa do campo de ponto.

Você pode adicionar seu campo pt da seguinte forma:
ALTER TABLE my_table ADD COLUMN GEOMETRY;

Em seguida, você pode mover os dados das colunas de latitude e longitude existentes da seguinte maneira:
UPDATE my_table SET pt = PointFromText(CONCAT('POINT(',longitude,' ',latitude,')'))

Para obter mais detalhes sobre isso, consulte:https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/en/poulating-spatial-columns.html