我正在开发一个应用程序,显示包含“Time created”和“Number of Likes”列的行。
我正在尝试使用最喜欢的行返回查询的前5个结果,然后在最近的日期返回剩余的95个结果,而不重复。
我当前的查询只按日期完成排序。
"SELECT * FROM `$category` ORDER BY time DESC LIMIT 100"
我在一个查询中尝试做的是什么?或者我是否必须执行两个查询并过滤掉重复的行?
答案 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