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

特定の場所の近くにある最も近い場所を効率的に見つける方法

    Haversine式 を使用すると、達成しようとしていることをより適切に行うことができると思います。 SQLで。 Googleには、MySQLデータベース内の最も近い場所を取得する方法に関するチュートリアルがあります。 しかし、一般的な考え方はこのSQLです:

    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;
    

    次に、必要なすべての作業がデータベースで行われるため、距離を確認する前に、すべてのビジネスをPHPスクリプトに取り込む必要はありません。



    1. Oracle SQL:IN句内で1000を超えるアイテムを使用する方法

    2. 単語リストのいずれかに対するPostgreSQLワイルドカードLIKE

    3. Postgres接続を取得するためにHibernateが遅い

    4. executeQuery()を使用してデータ操作ステートメントを発行することはできません