关于MySql删除表中重复数据
2016-08-25 18:21
288 查看
今天在删除MySQL表中重复数据的时候,遇到一些问题,在这里做一些笔记。
创建一个表测试create table user(
id int not null primary key auto_increment,
name varchar(20),
password varchar(20)
)为表添加数据
接下来查询重复数据
select username from n_user group by username having count(username)>1
结果
删除重复数据
delete from user where name in(
select name from user group by name having count(name)>1
)结果
查了一下,MySQL在查询后又执行删除操作就会报这个错,解决办法是在查询语句外面再嵌套一层查询,如下
delete from user where name in(
select name from(
select name from user group by name having count(name)>1
) as aa
)这里还有一个套就是如果没给查询设置别名,报这个错
错误解决,再次执行,就可以成功删除表中重复数据了
要保留重复数据中的一条记录,这样写
delete from user where name in(
select name from(
select name from user group by name having count(name)>1
) as aa
) and id not in(
select id from(
select min(id) id from user group by name having count(name)>1
) as ab
)
创建一个表测试create table user(
id int not null primary key auto_increment,
name varchar(20),
password varchar(20)
)为表添加数据
接下来查询重复数据
select username from n_user group by username having count(username)>1
结果
删除重复数据
delete from user where name in(
select name from user group by name having count(name)>1
)结果
查了一下,MySQL在查询后又执行删除操作就会报这个错,解决办法是在查询语句外面再嵌套一层查询,如下
delete from user where name in(
select name from(
select name from user group by name having count(name)>1
) as aa
)这里还有一个套就是如果没给查询设置别名,报这个错
错误解决,再次执行,就可以成功删除表中重复数据了
要保留重复数据中的一条记录,这样写
delete from user where name in(
select name from(
select name from user group by name having count(name)>1
) as aa
) and id not in(
select id from(
select min(id) id from user group by name having count(name)>1
) as ab
)
相关文章推荐
- 关于MYSQL通过子查询删除重复数据的for update报错问题解决
- 关于mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句理解
- mysql 中删除重复数据
- MYSQL 删除重复数据。。
- 关于mysql 删除数据后物理空间未释放(转载)
- mysql学习总结一当数据不存在的时候插入,存在的时候进行更新,删除重复数据
- Mysql大数据表删除重复数据
- mysql中 删除重复数据
- mysql删除重复数据
- mysql 删除表中重复数据留一条
- mysql 删除重复数据
- 删除Mysql数据表中多余的重复记录的sql语句
- MySQL 中查找重复数据,删除重复数据
- 关于删除重复记录的数据
- mysql删除某个字段重复的数据
- 在Mysql和Oracle中如何删除字段中的重复数据
- MySQL删除重复数据
- MySQL删除重复数据
- 关于gridview的一些用法,如获得gridview的选中行的数据,以及其他删除DataTable中的重复行。
- mysql删除重复数据