【发布时间】:2016-05-22 12:53:15
【问题描述】:
在一个网站上,我有一个我正在努力使用 MySQL 排序的项目列表。
有些项目“过期”(它们的 end_at 是过去的),我想找回它们,但在“活动”项目之后(它们的 end_at 可以是 NULL 或将来)。
我希望能够根据另一个字段对项目进行进一步排序,比如说“视图”(首先获得最受欢迎的)
基本上,这就是我想要得到的:
- 项目 1(活跃 - 最受欢迎)
- 项目 2(活跃 - 第二受欢迎)
- 项目 3(活跃 - 第三受欢迎)
- 第 4 项(已过期)
- 第 5 项(已过期)
- (等等)
到目前为止,这是我尝试过的:
SELECT name, end_at
FROM items
ORDER BY (end_at IS NULL OR end_at > CURDATE()), views DESC;
不起作用:即使是第一个返回的项目也已过期。
【问题讨论】:
标签: mysql sql-order-by