假设有一张表如下,含有部分重复数据,这些重复数据除了 id
不同,其他数据都相同。
id | student_id | name | course_id | course_name | score |
---|---|---|---|---|---|
1 | 2005001 | 张三 | 1 | 数学 | 69 |
2 | 2005002 | 李四 | 1 | 数学 | 89 |
3 | 2005001 | 张三 | 1 | 数学 | 69 |
1 | CREATE TABLE `test` ( |
1. 过滤重复数据
使用 group by
进行查找就可以过滤重复数据
1 | SELECT `student_id`, `name`, `course_id`, `course_name`, `score` FROM `test` |
2. 统计重复数据
1 | SELECT count(1) AS `repetitions`, `name` FROM `test` |
3. 删除重复数据
思路:分组后,选出 id
最小的一条,不被选中的 id
全部删除
1 | DELETE FROM `test` |