Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer une colonne spatiale MySQL - Type de données Point avec lat long sans utiliser la table Alter

Le champ de points contient à la fois les données de latitude et de longitude stockées à l'intérieur et elles peuvent être récupérées assez facilement si nécessaire. En supposant que votre champ de point est le nom pt, la requête suivante donne cette information.

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

C'est exactement la même chose que de faire

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

depuis X et ST_X sont des pseudonymes. Donc, en bref, vous n'avez besoin que du champ de point.

Vous pouvez ajouter votre champ pt comme suit :

ALTER TABLE my_table ADD COLUMN GEOMETRY;

Ensuite, vous pouvez déplacer les données des colonnes de latitude et de longitude existantes comme suit :

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

Pour plus de détails à ce sujet, veuillez consulter :https://stackoverflow.com/a/7135890/267540
http://dev.mysql .com/doc/refman/5.7/en/populating-spatial-columns.html