sql >> Databasteknik >  >> RDS >> Mysql

Flytta lat/lång textkolumner till en kolumn av typen "punkt".

Förutsatt att du vill ha en SPATIAL index på denna kolumn:

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);

Om du inte gör det kan du utelämna de två sista stegen.

Uppdatering:

I tidigare versioner av MySQL , skulle du behöva fylla i Point kolumner med WKT :

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


  1. Hur ändrar jag fält i den nya PostgreSQL JSON-datatypen?

  2. SQL Kan inte skapa tabell (errnr:150)

  3. Hitta det riktiga kolumnnamnet för ett alias som används i en vy?

  4. Varför detta påstående rs=st.executeQuery(query); är inte excuting? Hur kan jag välja endast en tabell som beror på input type=radio från mysql från två tabeller?