max*_*ax_ 5 mysql sql sql-order-by
我使用以下查询来选择指定纬度和经度的最近行.然后按距离排序结果,返回所选数据集中最近的行.
但是,我想按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
Run Code Online (Sandbox Code Playgroud)
Joh*_*nde 31
ORDER BY可以是逗号分隔的列表.只需按顺序列出它们:
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
, expiry_date DESC
LIMIT 0 , 15
Run Code Online (Sandbox Code Playgroud)
您需要一个子查询:
select t.*
from (<your query here>) t
order by expiry_date desc
Run Code Online (Sandbox Code Playgroud)