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 |
+----+----------+------+
分享到:
相关推荐
MySQL常用SQL语句 MySQL是一种关系型数据库管理系统,使用SQL(Structured Query Language)语言来管理和操作数据库。下面是MySQL中一些常用的SQL语句: 创建、删除和基本查询 * 显示数据库:`show databases;` *...
在这个例子中,我们首先通过 `BeginTrans` 开始一个事务,然后依次执行多条 SQL 插入语句,最后使用 `CommitTrans` 提交事务。如果在执行过程中出现异常,则使用 `RollbackTrans` 回滚事务。 ##### 3. 更新批处理 ...
【MySQL数据库】一条SQL语句执行慢的问题是一个复杂的议题,涉及到多个方面,包括数据库的内部机制、事务处理、索引优化以及SQL语句的设计。下面将深入解析导致SQL执行变慢的主要因素。 **一、执行偶尔变慢** 1. *...
MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...
本代码,用python语句,实现了一次插入多条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、...
- `PRIMARY KEY (student_id)` 设置`student_id`为主键,确保每条记录都有唯一的标识。 #### 示例2:插入数据 一旦创建了表格,就可以使用`INSERT INTO`语句向表格中添加数据。 ```sql INSERT INTO students ...
MySQL 是一种广泛使用的关系数据库管理系统,SQL 语句是其核心组成部分。今天,我们将介绍六个有用的 MySQL SQL 语句,帮助您更好地使用 MySQL 数据库。 1. 计算年数 计算年数是日常生活中常见的问题,例如,根据...
"mysql 一条语句删除多表" 的主题就是关于如何通过单个SQL语句来删除关联的多个表的数据,从而节省数据库连接资源和提高执行效率。下面将详细解释这一技术及其背后的原理。 首先,我们要理解的是SQL语言中的“JOIN...
与`REPLACE`选项不同,`IGNORE`选项在遇到重复记录时不会删除旧记录,而是直接跳过这条记录,继续处理下一条记录。这适用于那些不希望因为重复记录而中断数据导入场景。 使用`IGNORE`选项的命令如下: ```sql LOAD...
MySQL 是一个开源的关系数据库管理系统,它的执行 SQL 语句的流程是一个复杂的过程,涉及到多个组件和步骤。下面是 MySQL 执行 SQL 语句的流程详解: 1. 连接器(Connector):当用户登录数据库时,连接器会对用户...
这条语句使用 `DATEPART` 函数将日期转换为季度,然后比较当前日期的季度减去一个季度以获取上季度的记录。 查询本年记录 MySQL 中,您可以使用以下语句查询本年记录: ```sql SELECT * FROM ht_invoice_...
在MySQL数据库中,查询最近一条记录通常涉及到时间戳或者某个排序字段。本文主要探讨了三种不同的SQL语句来实现这一目标,从效率低下的方法到更优化的解决方案,特别是针对大量数据的情况。 首先,最简单但效率最低...
5. **源码与工具**:标签中的“源码”可能指的是用于实现上述查询的SQL语句,而“工具”可能是指使用MySQL客户端或其他数据库管理工具(如phpMyAdmin、MySQL Workbench等)来执行这些查询。 6. **文件111.sql**:这...
MySQLs是一款专为Node.js设计的SQL语句生成器,其特点是通过链式调用的方式提供了灵活的操作体验。在Node.js的开发环境中,与数据库交互是必不可少的一部分,而MySQLs插件则为开发者提供了一个高效且易用的工具,...
- **插入单行数据**:例如,插入一条学生记录。 ```sql INSERT INTO student (id, name, age, sex, school_id, score) VALUES ('001', 'zhangsan', 20, 'male', '001', 80); ``` - **插入多行数据**:一次性...
- **图1**:显示第一条SQL语句的执行时间为00:00:02:703,返回结果为345040条记录。 - **图2**:第二条SQL语句的执行时间为00:00:00:125,同样返回345040条记录。 - **图3**:第三条SQL语句的执行时间为00:00:00:000...
本压缩包“Sql1”提供了SQL语句的练习,帮助用户深入理解和熟练掌握MySQL中的SQL用法。 首先,基础的SQL语句包括SELECT、INSERT、UPDATE和DELETE。SELECT用于从数据库中查询数据,是SQL中最常用的部分。你可以学习...
例如,向MYTABLE表中添加一条记录,可以使用`INSERT INTO MYTABLE VALUES(’hyq’, ’M’);`。 查看数据库中存在哪些表,可以使用`SHOW TABLES;`。查看表结构可以使用`DESCRIBE 表名;`,例如`DESCRIBE MYTABLE;`。...
例如,如果我们有一个名为`employees`的表,包含`id`, `name`和`position`字段,可以这样插入一条记录: ```sql INSERT INTO employees (id, name, position) VALUES (1, '张三', '经理'); ``` 在Java开发中,通常...