sql >> Databáze >  >> RDS >> Mysql

Vytvořte prostorový sloupec MySQL – datový typ bodu s lat long bez použití Alter tabulky

Bodové pole má v sobě uloženy údaje o zeměpisné šířce a délce a lze je v případě potřeby snadno získat. Za předpokladu, že vaše bodové pole je název pt, následující dotaz tuto informaci poskytne.

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

To je úplně stejné jako dělat

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

od X a ST_X jsou aliasy. Stručně řečeno, potřebujete pouze bodové pole.

Pole pt můžete přidat následovně:

ALTER TABLE my_table ADD COLUMN GEOMETRY;

Poté můžete přesunout data ze stávajících sloupců zeměpisné šířky a délky následovně:

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

Další podrobnosti naleznete na:https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/en/populating-spatial-columns.html




  1. jaký je rozdíl mezi GROUP BY a ORDER BY v sql

  2. Úvod do speciálních dotazů

  3. PHP Kontrola NULL

  4. Jak převedu starší příkaz levého vnějšího spojení v Oracle?