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

MySQLで緯度に近いポリゴンを取得します

    低速バージョン(空間インデックスなし):

    SELECT  *
    FROM    mytable
    WHERE   MBRIntersects(mypolygon, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
    

    空間インデックスを利用するには、テーブルを非正規化して、各ポリゴンの頂点が独自のレコードに格納されるようにする必要があります。

    次に、SPATIAL INDEXを作成します 頂点の座標を含むフィールドで、次のクエリを発行します:

    SELECT  DISTINCT polygon_id
    FROM    vertices
    WHERE   MBRContains(vertex, LineString(Point(@X - @distance, @Y - @distance), Point(@X + @distance, @Y + @distance))
    

    UTMを保存すると、作業がはるかに簡単になります。 緯度と経度ではなく、データベース内の座標。



    1. グループ関数を使用したデータの集約(oracleによるグループ化)

    2. 挿入から1時間遅れた日時。夏時間

    3. CSVファイルをSQLサーバーにアップロードする

    4. ビデオ:RACでのOracle12cIDENTITY列のパフォーマンス