半径検索:
select *,
acos(cos(centerLat * (PI()/180)) *
cos(centerLon * (PI()/180)) *
cos(lat * (PI()/180)) *
cos(lon * (PI()/180))
+
cos(centerLat * (PI()/180)) *
sin(centerLon * (PI()/180)) *
cos(lat * (PI()/180)) *
sin(lon * (PI()/180))
+
sin(centerLat * (PI()/180)) *
sin(lat * (PI()/180))
) * 3959 as Dist
from TABLE_NAME
having Dist < radius
order by Dist
3959は、マイル単位の地球半径です。同じ単位で結果を得るには、この値をKMまたは任意の単位の半径に置き換えます。 centerLat およびcenterLon は検索の中心(yourinput)であり、latとlonはテーブルのフィールドです。