MySQL - 按一个列排序以获取限制,然后按另一列排序以获取限制

时间:2015-01-05 15:37:08

标签: mysql

我正在开发一个应用程序,显示包含“Time created”和“Number of Likes”列的行。

我正在尝试使用最喜欢的行返回查询的前5个结果,然后在最近的日期返回剩余的95个结果,而不重复。

我当前的查询只按日期完成排序。

"SELECT * FROM `$category` ORDER BY time DESC LIMIT 100"

我在一个查询中尝试做的是什么?或者我是否必须执行两个查询并过滤掉重复的行?

1 个答案:

答案 0 :(得分:1)

UNION自动删除重复的行,括号外的LIMIT适用于整个查询。

(SELECT *, like_count AS likes FROM category ORDER BY like_count DESC LIMIT 5)
UNION
(SELECT *, 0 AS likes FROM category ORDER BY time DESC)
ORDER BY likes DESC, time DESC
LIMIT 100