使用order by分页查询出来的数据出现重复或丢失的问题

1、问题

用sql进行分页查询,其中有利用order by来对数据进行排序,在第一页查询出来的数据在第二页也出现了,并且会存在个别数据查询不出来导致丢失的情况。

2、原因

order by后面跟的字段的值不唯一,有相同的值,排序时导致可以自由地以任何顺序来返回这些数据,从而导致可能出现查询第一页时有一条数据已经出现过了,查询第二页,这条数据就出现在第二页,导致数据重复或者查询第一页时,这条数据在第二页,查询第二页时,这条数据在第一页,导致数据丢失

3、解决办法

在order by后面再跟一个值唯一的字段

例如:

order by field1,field2 desc
order by field1 desc,field2 asc

你可能感兴趣的:(数据库,数据库)