我有一系列日期事件,如下:
按照时间顺序说我想要最近的两个事件。如果我跑了:
SELECT * FROM 'table_name' ORDER BY 'Date' ASC LIMIT 2
我会得到以下结果:
但这是不正确的,因为事件3是最近的事件。所以我因此将ASC更改为DESC:
SELECT * FROM 'table_name' ORDER BY 'Date' DESC LIMIT 2
我得到以下结果:
这是正确的结果集,但它们是倒退的。我希望最近的事件能够持续...但我不能再次使用ORDER BY 'Date'
。有没有办法限制我的结果(通过LIMIT
和ORDER BY
,然后对剩余的结果使用第二个ORDER BY
?
非常感谢任何帮助!
答案 0 :(得分:3)
更快的方法就是做一个选择。使用UNION语法再次订购。尝试一下!
(SELECT *
FROM events
ORDER BY date DESC
LIMIT 2
)ORDER BY date ASC;
答案 1 :(得分:2)
SELECT *
FROM (SELECT * FROM events ORDER BY date DESC LIMIT 2) AS table_alias
ORDER BY date ASC
您需要为子查询提供表别名
干杯
答案 2 :(得分:0)
实际上,你可以
SELECT * FROM (
SELECT * FROM 'table_name' ORDER BY 'Date' DESC LIMIT 2
)
ORDER BY 'Date' ASC