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

緯度と経度を使用した半径40km

    このクエリを使用して、$radius内のすべてのポイントを取得します $lat周辺 / $lng

    SELECT
        *,
        ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
    FROM `positions`
    HAVING distance <= {$radius}
    ORDER BY distance ASC
    

    6371は地球半径imkmです。そして、私はそれを発明していません: http:/ /code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (編集:URLが変更されました)




    1. グループ化によるMySQLの削除

    2. Postgresql集約配列

    3. 1対1のテーブル関係を使用する利点は何ですか? (MySQL)

    4. シンプルだが重いアプリケーションは多くのリソースを消費します。最適化する方法は?