sql >> Database teknologi >  >> RDS >> Mysql

Opret MySQL rumlig kolonne - Punkt Datatype med lat long uden at bruge Alter-tabellen

Punktfeltet har både bredde- og længdegradsdata gemt inde, og de kan nemt hentes, hvis det kræves. Forudsat at dit punktfelt er navn pt, giver følgende forespørgsel disse oplysninger.

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

Det er præcis det samme som at gøre

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

siden X og ST_X er aliaser. Så kort fortalt behøver du kun punktfeltet.

Du kan tilføje dit pt-felt som følger:

ALTER TABLE my_table ADD COLUMN GEOMETRY;

Derefter kan du flytte dataene fra de eksisterende bredde- og længdegradskolonner som følger:

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

For flere detaljer om dette se venligst:https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/da/populating-spatial-columns.html




  1. Hvordan PERIOD_ADD() virker i MariaDB

  2. Vælg kun dagens (siden midnat) tidsstempler

  3. Bedste måde at installere hstore på flere skemaer i en Postgres-database?

  4. Hent sidst kendte værdi for hver kolonne i en række