使用mysql时的坑
mysql分页数据重复
最近线上反馈一个问题,某个列表接口,第二页的返回的数据里面有条数据和第一页的重复了。然后我去调了接口,确实会重现,并且一页10条和一页20条数据,接口返回的数据顺序不一样。
初看sql,又觉得没有问题。
select
uuid,
。。。
from
attendance_month_list
where
project_uuid in
。。。
and del_flag = 0
order by year desc,month desc
然后,我试了下把排序去掉, 就不会有重复的问题,就确定到是排序有问题。
后面发现是只根据年月排序的话,如果相同年月的数据有10多条,分页10条的时候,就会出现上面的问题。
解决办法:
select
uuid,
。。。
from
attendance_month_list
where
project_uuid in
。。。
and del_flag = 0
order by year desc,month desc,**uuid**
结论:排序的时候,要确保排序条件一定有最终优先级