sql >> Databasteknik >  >> RDS >> Mysql

Skapa MySQL spatial kolumn - Punkt Datatyp med lat long utan att använda Alter-tabellen

Punktfältet har både latitud- och longituddata lagrade inuti och de kan hämtas ganska enkelt om det behövs. Förutsatt att ditt punktfält är namn pt, ger följande fråga denna information.

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

Detta är exakt samma sak som att göra

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

eftersom X och ST_X är alias. Så kort och gott behöver du bara punktfältet.

Du kan lägga till ditt pt-fält enligt följande:

ALTER TABLE my_table ADD COLUMN GEOMETRY;

Sedan kan du flytta data från befintliga latitud- och longitudkolumner enligt följande:

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

För mer information om detta, se:https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/en/populating-spatial-columns.html




  1. Databassäkerhet 101:Säkerhet i databaser med öppen källkod

  2. Exportera MYSQL-data till Excel/CSV via php

  3. Django admin MySQL långsam INNER JOIN

  4. Varför fungerar inte GRANT i MySQL?