【发布时间】:2020-07-09 09:43:33
【问题描述】:
我遇到了一个问题,我还没有找到键集分页的解决方案:
假设我们有这个查询:
SELECT a.id, a.number, AVG(b.rating) AS rating
FROM a LEFT JOIN b ON xxxxxxx
GROUP BY a.id
ORDER BY rating DESC, a.number DESC
LIMIT xxxx
我们应该如何对它进行键集分页?
仅对于 a.number,我们可以有
WHERE a.number < ?;
仅用于评分,我们提供HAVING rating < ?;
如果有两个条件,我们可以有WHERE (x, y) < (?, ?)。
但是如何同时做HAVING和WHERE呢?
编辑: 我今天实现了这个,发现它比OFFSET分页慢,所以不推荐。
【问题讨论】:
标签: mysql sql database pagination having