PostgreSQL偏移量返回相同的数据

时间:2019-04-19 10:24:15

标签: postgresql

我有两个桌子。当我调用查询结果总是相同时,我想进行分页。错误在哪里?

select t1.id, status, category, lat, lng
    from public.p t1
join public.l t2 on t1.id=t2.id and user_id=4 limit 10 OFFSET 10

1 个答案:

答案 0 :(得分:0)

严格来说,没有ORDER BY,Postgres可以随意返回 任何 行,因为顺序是不确定的,并且任何结果都是正确的。 (但是Postgres仍然会应用OFFSET,因此即使没有ORDER BY,它也应该“起作用”。)

使用(确定性的)ORDER BY重试:

select t1.id, status, category, lat, lng
from public.p t1
join public.l t2 on t1.id=t2.id and user_id=4
ORDER BY ?something?                             -- !
limit 10
offset 10

尽管如此,LIMIT / OFFSET通常不是 分页 的最佳工具。参见: