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

MySQLの経度と緯度内でのクエリ

    半正矢関数を検索する必要がありますが、良いスタートは次のようになります。

    最初のURLからの引用:

    これは、37、-122座標から半径25マイル以内にある最も近い20の場所を見つけるSQLステートメントです。その行の緯度/経度とターゲットの緯度/経度に基づいて距離を計算し、距離の値が25未満の行のみを要求し、クエリ全体を距離順に並べ替えて、結果を20に制限します。マイルではなくキロメートルで検索するには、3959を6371に置き換えます。

    SELECT
        id,
        ( 3959
          * acos( cos( radians(37) )
                  * cos(  radians( lat )   )
                  * cos(  radians( lng ) - radians(-122) )
                + sin( radians(37) )
                  * sin( radians( lat ) )
                )
        )
        AS distance
    FROM markers
    HAVING distance < 25
    ORDER BY distance
    LIMIT 0 , 20;
    


    1. CodeIgniter-新規の場合はアクティブレコードを挿入するか、重複して更新する

    2. MySql Proccesslistがスリープエントリでいっぱいになり、接続が多すぎますか?

    3. MariaDBでサポートされている文字セットの完全なリスト

    4. MariaDBとTableauを使い始めるための5つの簡単なステップ