緯度と経度の値を含む注目広告と非注目広告を含む広告テーブルがあります。ユーザーが特定の場所から距離を置いて広告を検索すると、500 km 未満の注目広告を一番上に表示したいと考えています。選択された場所、および他のすべての広告は賢明に無制限の距離まで距離を置き、その後に注目のリストが続きます。
最初に注目のリストを無制限の距離まで表示し、次に距離関数と注目の句による順序を使用して他の残りの広告を表示できます。しかし、最初に 500km 未満を表示し、次に残りの広告を無制限の距離に表示する注目のリストを作成する方法.
ユニオンを使用する必要がありますか?他に解決策はありますか?
ソースの場所
latitude = -37.814563
longitude = 144.970267
SELECT da.*,( 6371 * acos( cos(radians(144.970267)) * cos(radians(da.loc_lng)) *
cos(radians(-37.814563) - radians(da.loc_lat)) + sin(radians(144.970267)) *
sin(radians(da.loc_lng)) )) as distanceSort FROM directory_ads da WHERE da.approved = 1
AND da.deleted = 0 ORDER BY da.featured DESC, distanceSort ASC