restaurant
各行の緯度経度データを含むテーブルがあります。
指定された半径 (1 マイル、5 マイルなど) 内のすべてのレストランを検索するための検索を実行するクエリを作成する必要があります。
query
この目的のために、次のものがあります。
***Parameters***
Longitude: -74.008680
Latitude: 40.711676
Radius: 1 mile
***Query***
SELECT *
FROM restaurant
WHERE (
POW( ( 69.1 * ( Longitude - -74.008680 ) * cos( 40.711676 / 57.3 ) ) , 2 ) + POW( ( 69.1 * ( Latitude - 40.711676 ) ) , 2 )
) < ( 1 *1 );
テーブルには約 23k 行あります。結果セットのサイズがおかしくなることがあります。たとえば、5.4 マイルの検索では 880 行が返され、5.5 マイルの検索では 21,000 行が返されます。
このテーブルには nyc のレストラン データが含まれているため、実際の分布は結果セットとは異なります。
質問: このクエリに問題はありますか?
DB: MySQL、経度: DECIMAL(10,6)、緯度: DECIMAL(10,6)