通过 OFFSET 分页
向 UNION 添加 LIMIT 时,这是要使用的模式:
( SELECT ... ORDER BY x LIMIT 10 )
UNION
( SELECT ... ORDER BY x LIMIT 10 )
ORDER BY x LIMIT 10
由于你无法预测 10
将来自哪个 SELECT,你需要从每个中获得 10,然后进一步减少列表,重复 ORDER BY
和 LIMIT
。
对于 10 个项目的第 4 页,需要此模式:
( SELECT ... ORDER BY x LIMIT 40 )
UNION
( SELECT ... ORDER BY x LIMIT 40 )
ORDER BY x LIMIT 30, 10
也就是说,在每个 SELECT
中收集 4 页的价值,然后在 UNION
中进行 OFFSET
。