我想限制使用带有 ORDER BY 子句的语句时返回的行数。
我的其中一列的 ID 对于该行来说不是唯一的,因此会出现多次。如果我在语句末尾使用 LIMIT ,它将完全限制结果,而不是在 SELECT 点。 LIMIT 可能是 3,在这种情况下,每个 ID 将返回三行。
id | .........
1 | .........
1 | ........
1 | .......
1 | ......
1 | .....
2 | ....
2 | ...
2 | ..
2 | .
我的发言结尾是:
ORDER BY id, date DESC
最佳答案
这是一种方法:
select t.*
from table t
where (select count(*)
from table t2
where t2.id = t.id and t2.date >= t.date
) <= 3
order by id, date desc;
这会统计某个 id 中等于或大于该日期的日期的行数,并且仅保留计数小于或等于 3 的行。
关于mysql - 限制返回的行数 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223890/