概述
1. Mysql分页,排序查询时出现重复的数据
sql语句
##查询第一页数据
SELECT rs.id, rs.deadline, rs.course_lesson_id, cl.english_name, rs.course_catalog_id, cc.english_name, rs.`content_status`
FROM recording_schedule rs LEFT JOIN course_lesson cl ON cl.id = rs.course_lesson_id LEFT JOIN course_catalog cc ON cc.id = rs.course_catalog_id
where rs.delete_time IS NULL and rs.content_status in( 1,4)
and rs.teacher_id = 14 and rs.`status` != 2
order by FIELD(rs.content_status, 4,5,3,1,6) asc, rs.deadline asc
limit 0,7
##查询第二页数据
SELECT rs.id, rs.deadline, rs.course_lesson_id, cl.english_name, rs.course_catalog_id, cc.english_name, rs.`content_status`
FROM recording_schedule rs LEFT JOIN course_lesson cl ON cl.id = rs.course_lesson_id LEFT JOIN course_catalog cc ON cc.id = rs.course_catalog_id
where rs.delete_time IS NULL and rs.content_status in( 1,4)
and rs.teacher_id = 14 and rs.status != 2
order by FIELD(rs.content_status, 4,5,3,1,2,6) asc, rs.deadline asc
limit 7,7
查询结果
所有的数据
image.png重复的数据
image.png
image.png
可以看到重复了id为145的数据,丢失了id为53的数据。原因主要是:id为145的数据和id为53的数据所对应的deadline和content_status字段内容是完全一样的,sql语句又只按照这两个字段排序,就造成了可能重复的问题。
解决方法
在排序的最后添加一个id(id为主键id)的排序,使order by的组合内容唯一。
最后
以上就是大方蓝天为你收集整理的mysql可能遇到的问题_四. MYSQL常遇到的问题的全部内容,希望文章能够帮你解决mysql可能遇到的问题_四. MYSQL常遇到的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复