常用sql语句之删除或查询单个字段重复数据的记录
2015-07-22 11:13
851 查看
例子 test表下的数据
id userid username userkey userpwd
1 6 fdas 231 344
2 6 4324 3432 23432
3 7 52 erwr fdsaf
select * from test
where userid in (select userid from test group by userid having
count(userid ) > 1) ;
查询结果为
6 fdas 231 344
6 4324 3432 23432
但是我要保留1条数据就好了,下面保留id最少的哪行数据
SET FOREIGN_KEY_CHECKS = 0;
SET SQL_SAFE_UPDATES=0;
create table mytmp as select min(id) as col1 from test group by userid;
delete from test where id not in (select col1 from mytmp);
drop table mytmp;
这样就删除其他多余的数据了。
id userid username userkey userpwd
1 6 fdas 231 344
2 6 4324 3432 23432
3 7 52 erwr fdsaf
select * from test
where userid in (select userid from test group by userid having
count(userid ) > 1) ;
查询结果为
6 fdas 231 344
6 4324 3432 23432
但是我要保留1条数据就好了,下面保留id最少的哪行数据
SET FOREIGN_KEY_CHECKS = 0;
SET SQL_SAFE_UPDATES=0;
create table mytmp as select min(id) as col1 from test group by userid;
delete from test where id not in (select col1 from mytmp);
drop table mytmp;
这样就删除其他多余的数据了。
相关文章推荐
- 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
- 查看Oracle执行计划方法
- sql使用存储过程和交易
- SQL导入已存在MDF文件
- mongo数据库。
- hibernate mysql concat 查询 结果 乱码
- editplus 替换换行 excel 表格 拼装sql语句技巧
- 缓存的一些理解
- sql 2008 权限角色控制
- ubuntu14环境下,通过apt-get 下载oracle-java8
- redis加mybatis,org.apache.commons.pool2.impl.GenericObjectPoolConfig记住这个是pool2!!
- mysql学习之三大子查询(where,from,exist)
- 设置数据库及表的默认字符集
- Oracle通过database link连接到mysql
- Oracle10g常见HINT的用法语法
- 浅析Oracle语句优化规则
- oracle索引方式详解
- mongodb 3.0 创建用户 开启认证
- Oracle客户端 无法监听设置
- mysql top