次のクエリを使用して、指定した緯度と経度に最も近い行を選択しています。次に、結果は距離順に並べられ、選択されたデータセットから最も近い行が返されます。
ただし、次に、フィールドごとに返された最も近い行expiry_date
を並べ替えて、そのデータセットを並べ替え、最後が最も早く(有効期限が最も近い)、一番下が最も長くなるようにします。
どうすればいいのか教えてください。
SELECT * , ( 6371 * ACOS( COS( RADIANS( latitude ) ) * COS( RADIANS( 51.61062 ) ) * COS( RADIANS( - 0.236952 ) - RADIANS( longitude ) ) + SIN( RADIANS( latitude ) ) * SIN( RADIANS( 51.61062 ) ) ) ) AS distance
FROM `questions`
WHERE `expiry_date` >
CURRENT_TIMESTAMP HAVING distance <=50000
ORDER BY distance
LIMIT 0 , 15