我注意到在分页记录集中有一些重复的行。
当我运行此查询时:
SELECT "students".* FROM "students" ORDER BY "students"."status" asc LIMIT 3 OFFSET 0
我得到:
| id | name | status | | 1 | foo | active | | 12 | alice | active | | 4 | bob | active |
下一个查询:
SELECT "students".* FROM "students" ORDER BY "students"."status" asc LIMIT 3 OFFSET 3
| id | name | status | | 1 | foo | active | | 6 | cindy | active | | 2 | dylan | active |
为什么在两个查询中都出现“ foo”?
因为返回的所有行的列均具有相同的值status。在这种情况下,数据库可以自由以其想要的任何顺序返回行。
status
如果您想要可重复的订单,则需要在order by语句中添加第二列以使其一致。例如ID列:
SELECT students.* FROM students ORDER BY students.status asc, students.id asc
如果两行的状态列的值相同,则它们将按ID排序。