记一个开发中遇到的问题。
对数据库的数据进行按每页10条分页展示,数据库共11条数据。第一页查询没有问题,但是翻页的时候问题就出现了:
第二页的那一条数据居然在第一页中出现过!
查询相关资料后,问题产生的原因是没有指定orderby语句,所以mysql没有以特定顺序返回。按照我自己的理解是:
当第一页查询时以一种未知的顺序返回了数据,此时第一页数据没有任何问题;当第二页查询时又以另一种顺序返回数据,此时由于次序发生了变化,以那11条数据为例,此时最后一条数据由于排序发生了变化,从而发生了改变,第二页的数据就会出现第一页中的数据。
扩展:
如果order by 语句 对应的字段存在重复值,也有可能产生相同的情况。