sql >> データベース >  >> RDS >> Mysql

MySQL空間列の作成-Alterテーブルを使用せずに緯度経度のポイントデータ型

    ポイントフィールドには、緯度と経度の両方のデータが格納されており、必要に応じて非常に簡単に取得できます。ポイントフィールドの名前がptであるとすると、次のクエリでこの情報が得られます。

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

    これは行うのとまったく同じです

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

    XおよびST_X 以降 エイリアスです。つまり、必要なのはポイントフィールドだけです。

    ptフィールドは次のように追加できます:

    ALTER TABLE my_table ADD COLUMN GEOMETRY;
    

    次に、次のように、既存の緯度と経度の列からデータを移動できます。

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

    詳細については、https://stackoverflow.com/a/7135890/267540
    http://dev.mysql .com / doc / refman / 5.7 / en / Populating-spatial-columns.html




    1. UTF8ワークフローPHP、MySQLの要約

    2. PostgreSQLクエリで名前付き定数を定義する方法はありますか?

    3. 弱く型付けされたSYS_REFCURSORである変数の%ROWTYPEを宣言する方法は?

    4. where句の列'id'があいまいです