Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Räumliche MySQL-Spalte erstellen - Punktdatentyp mit lat long ohne Verwendung von Alter table

Im Punktfeld sind sowohl die Breiten- als auch die Längendaten gespeichert, die bei Bedarf ganz einfach abgerufen werden können. Angenommen, Ihr Punktfeld ist name pt, liefert die folgende Abfrage diese Informationen.

SELECT ST_Y(pt), ST_X(pt) FROM my_spatial_table;

Dies ist genau dasselbe wie beim Ausführen

SELECT Y(pt), X(pt) FROM my_spatial_table;

seit X und ST_X sind Pseudonyme. Kurz gesagt, Sie benötigen also nur das Punktfeld.

Sie können Ihr pt-Feld wie folgt hinzufügen:

ALTER TABLE my_table ADD COLUMN GEOMETRY;

Anschließend können Sie die Daten aus den vorhandenen Breiten- und Längengradspalten wie folgt verschieben:

UPDATE my_table SET pt = PointFromText(CONCAT('POINT(',longitude,' ',latitude,')'))

Weitere Einzelheiten hierzu finden Sie unter:https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/en/populating-spatial-columns.html