有时候分页查询时会中出现重复数据,一般都是相邻的两页有部分数据重复,经过刷新后,这部分数据又有可能不重复,然而查询出来的总数是正确的,因为主键都是一样的,所以数据库中数据是正确的。那么先看看那些重复数据有什么相同点。
经发现容易出现重复的数据,它的时间都是非常相近的。那么再看看分页的sql语句
<select id="list" resultType="Member">
select
<include refid="columns" />
from user_member where isDelete=0
<if test="keywords != null">
and (mobile like CONCAT('%',#{keywords},'%') or name like CONCAT('%',#{keywords},'%'))
</if>
<if test="endTime != null">
and createTime <= #{endTime}
</if>
<if test="startTime != null">
and createTime >= #{startTime}
</if>
<if test="roleType != null">
and roleType = #{roleType}
</if>
<if test="roleTypeList != null">
and roleType in
<foreach collection="roleTypeList" index="index" item="item" open="("
separator="," close=")">
#{item}
</foreach>
</if>
order by updateTime desc
<if test="count != null">
limit #{count}
</if>
</select>
原因:order by updataTime desc查询的数据重复了,所以改为order by updateTime desc ,id desc即可。