`
guochongcan
  • 浏览: 320345 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MYSQL用一条SQL语句删除重复记录

阅读更多
MYSQL用一条SQL语句删除重复记录

MYSQL不支持如下语句:
delete from t_user where id in(select max(id) as id from t_user group by username );

MYSQL用以下词句就可以:
delete t_user from t_user , (select id from t_user group by username having count(*)>1 ) as t2 where t_user.id=t2.id;


例子如下:

drop table t_user;
create table t_user(
id        int(5) not null auto_increment,
username varchar(10),
age       int(3),
primary key(id)
);

insert into t_user(username,age) values('aaa',20);
insert into t_user(username,age) values('aaa',20);
insert into t_user(username,age) values('bbb',20);
insert into t_user(username,age) values('bbb',20);
insert into t_user(username,age) values('ccc',20);
insert into t_user(username,age) values('ccc',20);
insert into t_user(username,age) values('ddd',20);
insert into t_user(username,age) values('ddd',20);

mysql> select * from t_user;
+----+----------+------+
| id | username | age |
+----+----------+------+
| 1 | aaa      |   20 |
| 2 | aaa      |   20 |
| 3 | bbb      |   20 |
| 4 | bbb      |   20 |
| 5 | ccc      |   20 |
| 6 | ccc      |   20 |
| 7 | ddd      |   20 |
| 8 | ddd      |   20 |
+----+----------+------+

mysql> delete t_user from t_user , (select id from t_user group by username having count(*)>1 ) as t2 where t_user.id=t2.id;
Query OK, 4 rows affected (0.05 sec)


mysql> select * from t_user;
+----+----------+------+
| id | username | age |
+----+----------+------+
| 2 | aaa      |   20 |
| 4 | bbb      |   20 |
| 6 | ccc      |   20 |
| 8 | ddd      |   20 |
+----+----------+------+
分享到:
评论
2 楼 guochongcan 2011-12-08  
fantaxy025025 写道
兄弟,你这个不行的。

只能删除 重复个数是2的,如果重复个数大于2,则不符合要求了。

thanks!


有时间再研究下,3Q
1 楼 fantaxy025025 2011-12-08  
兄弟,你这个不行的。

只能删除 重复个数是2的,如果重复个数大于2,则不符合要求了。

thanks!

相关推荐

    Python语句实现Mysql多条插入语句

    本代码,用python语句,实现了一次插入多条sql语句。希望能对大家带来帮助。

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...

    【MySQL数据库】一条SQL语句为什么执行这么慢?

    面试高频题目,一条SQL语句为什么执行这么慢? 这其中涉及的知识也是各种各样,今天就让我们来完全剖析这个问题。 一条SQL语句为什么执行这么慢?一、执行偶尔变慢1. 刷脏页,写磁盘2. 还在等锁3. 回滚日志过多二、...

    Mysql查询最近一条记录的sql语句(优化篇)

    主要介绍了Mysql查询最近一条记录的sql语句,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

    DBHelper数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite).zip

    执行多条SQL语句,实现数据库事务。 执行带一个存储过程参数的的SQL语句。 向数据库里插入图像格式的字段 执行一条计算查询结果语句,返回查询结果 执行查询语句,返回MySqlDataReader 执行查询语句,返回DataSet ...

    一条sql语句在mysql中是如何执行的.docx

    一条sql语句在mysql中是如何执行的.docx

    mysql 一条语句删除多表数据

    平时工作中可以用到的,将关联的表中的数据,用一条语句删除,节省数据库链接资源

    一条sql语句完成MySQL去重留一

    最快想到的是可以通过一条sql语句来解决,无奈自己对于复杂sql语句的道行太浅,所以想找大佬帮忙。 找人帮忙 因为这个需求有点着急,所以最开始想到的是,可以找这方面的同行来解决,然后分享这个问题给同事,结果这...

    MySQL – binlog日志简介及设置

    mysql-binlog介绍   mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看...优点:不需要记录每一条SQL语句与每行的数据变化,这样子bi

    mysql中获取一天、一周、一月时间数据的各种sql语句写法

    今天抽时间整理了一篇mysql中与天、周、月有关的时间数据的sql语句的各种写法,部分是收集资料,全部手工整理,自己学习的同时,分享给大家,并首先默认创建一个表、插入2条数据,便于部分数据的测试,其中部分名词...

    详解一条sql语句在mysql中是如何执行的

    最近开始在学习mysql相关知识,自己根据学到的知识点,根据自己的理解整理分享出来,本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的。...

    mysql 经典sql语句

    一条经典的SQL语句能优化整个系统的运行,本文详细记录了双轨制系统的所有SQL

    sql常用语句

    多条sql语句需要用 分号(;)分隔,单条可以不加,但为了不出现错误,一般都加上,使用mysql命令行必须加分号来结束。另外sql语句可以写在一行,但为了方便阅读与调试,一般会将sql语句分成多行来写

    常用SQL 语句大全

    13、一条sql 语句搞定数据库分页 14、前10条记录 15、选择每组中的最大数 第三部分、 技巧 1、True/False的使用 2、收缩数据库 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在...

    MYsql 数据库0基础SQL语句实战精讲.docx

    2、编写事务需要的sql语句(1条或多条) 56 3、结束事务 56 14. 如何删除索引 57 1 查出该表有哪些索引,索引名-->集合 57 2 如何循环集合 57 3 如何让mysql执行一个字符串 57 15. SQL优化讲解 58 16. 流程结构控制...

    一个项目涉及到的50个Sql语句(整理版)

    一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版) 一个项目涉及到的50个Sql语句(整理版)

    经典全面的SQL语句大全

     13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段  14、说明:...

    SQL语句执行深入讲解(MySQL架构总览-查询执行流程-SQL解析顺序)

    一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构—>查询执行流程—>语句执行顺序来探讨一下其中的知识。 一、MySQL架构总...

    OAmbre#Java-Interview#MySQL是如何执行一条SQL语句的1

    Server层按顺序执行sql的步骤为:客户端请求->连接器(验证用户身份,给予权限) -> 查询缓存(存在缓存则直接返回,不存在则执行后续操作)->分析器(对

Global site tag (gtag.js) - Google Analytics