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

Flytning af lat/længde-tekstkolonner til en kolonne af typen "punkt".

Forudsat at du vil have en SPATIAL indeks på denne kolonne:

ALTER TABLE mytable ADD coords Point;

UPDATE  mytable
SET     coords = Point(lon, lat);

ALTER TABLE mytable MODIFY coords POINT NOT NULL;

CREATE SPATIAL INDEX sx_mytable_coords ON mytable(coords);

Hvis du ikke gør det, kan du udelade de sidste to trin.

Opdatering:

I tidligere versioner af MySQL , skal du udfylde Point kolonner ved hjælp af WKT :

UPDATE  mytable
SET     coords = GeomFromText(CONCAT('POINT (', lon, ' ', lat, ')'))


  1. Hvordan kan jeg teste, om der findes en kolonne i en tabel ved hjælp af en SQL-sætning

  2. Hvordan IKKE REGEXP virker i MySQL

  3. Fejl 1215:Kan ikke tilføje fremmednøglebegrænsning

  4. SQL-alchemy:ValueError for mange værdier til at udpakke?