场景
在许多条记录里,存在着些相同的记录,使用SQL语句,删除掉重复项只保留一条。
数据模型
- 表结构
1 | CREATE TABLE `half_demon` ( |
字段 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
id | int(11) | 否 | NULL | 半妖ID |
name | varchar(20) | 否 | NULL | 姓名 |
weapon | varchar(20) | 否 | NULL | 武器 |
skill | varchar(20) | 否 | NULL | 武器 |
half_demon 半妖表
- 表数据
1 | INSERT INTO `test`.`half_demon` (`id`, `name`, `weapon`, `skill`) VALUES (1, '永远', '菊十文字', '苍龙破'); |
id | name | weapon | skill |
---|---|---|---|
1 | 永远 | 菊十文字 | 苍龙破 |
2 | 诸叶 | 弓箭 | 苍穹箭雨 |
3 | 诸叶 | 俱利伽罗丸 | 红龙破 |
4 | 刹那 | 兼光之巴 | 旋风阵 |
5 | 刹那 | 兼光之巴 | 宿蛾之月 |
单字段示例
- 查询语句
1 | SELECT |
查找表中多余的重复记录,重复记录是根据单个字段
name
来判断。
- 查询结果
id | name | weapon | skill |
---|---|---|---|
2 | 诸叶 | 弓箭 | 苍穹箭雨 |
3 | 诸叶 | 俱利伽罗丸 | 红龙破 |
4 | 刹那 | 兼光之巴 | 旋风阵 |
5 | 刹那 | 兼光之巴 | 宿蛾之月 |
- 删除语句
1 | DELETE |
删除表中多余的重复记录,重复记录是根据单个字段
name
来判断,只留有id
最小的记录。
- 删除结果
id | name | weapon | skill |
---|---|---|---|
1 | 永远 | 菊十文字 | 苍龙破 |
2 | 诸叶 | 弓箭 | 苍穹箭雨 |
4 | 刹那 | 兼光之巴 | 旋风阵 |
多字段示例
- 查询语句
1 | SELECT |
查找表中多余的重复记录,重复记录是根据多个字段
name、weapon
来判断。
- 查询结果
id | name | weapon | skill |
---|---|---|---|
4 | 刹那 | 兼光之巴 | 旋风阵 |
5 | 刹那 | 兼光之巴 | 宿蛾之月 |
- 删除语句
1 | DELETE |
删除表中多余的重复记录,重复记录是根据多个字段
name、weapon
来判断,只留有id
最小的记录。
- 删除结果
id | name | weapon | skill |
---|---|---|---|
1 | 永远 | 菊十文字 | 苍龙破 |
2 | 诸叶 | 弓箭 | 苍穹箭雨 |
3 | 诸叶 | 俱利伽罗丸 | 红龙破 |
4 | 刹那 | 兼光之巴 | 旋风阵 |
关联
[[MySQL 查询不重复的记录]]