通过使用临时表来删除表中重复的记录
2010-07-27 13:48
197 查看
一直以为只要和select语法一样找到那些不删的,保留就行了。
但是查了手册才知道不允许修改同以语句中select的表里的东西。这条路断了。
很不情愿的做临时表这条路。先通过临时表存放要删的或者不删的那些记录。再删除和临时表值一样的表中的记录,这样就只剩不重复的记录了。最后记得删除临时表。具体如下:
mysql> create temporary table aa select max(webtime) from ac_webacountrate group
by webid;
Query OK, 5 rows affected (0.36 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> delete from ac_webacountrate where webtime not in (select * from aa);
Query OK, 3 rows affected (0.00 sec)
mysql> drop table aa;
Query OK, 0 rows affected (0.01 sec)
但是查了手册才知道不允许修改同以语句中select的表里的东西。这条路断了。
很不情愿的做临时表这条路。先通过临时表存放要删的或者不删的那些记录。再删除和临时表值一样的表中的记录,这样就只剩不重复的记录了。最后记得删除临时表。具体如下:
mysql> create temporary table aa select max(webtime) from ac_webacountrate group
by webid;
Query OK, 5 rows affected (0.36 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> delete from ac_webacountrate where webtime not in (select * from aa);
Query OK, 3 rows affected (0.00 sec)
mysql> drop table aa;
Query OK, 0 rows affected (0.01 sec)
相关文章推荐
- Oracle删除重复记录 企业为什么经常使用Oracle?
- SqlServer2005中使用row_number()在一个查询中删除重复记录
- SqlServer 2005中使用row_number()在一个查询中删除重复记录
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- SqlServer中使用row_number()在一个查询中删除重复记录
- 转:使用一条SQL语句删除表中重复记录
- 如何删除一个表中重复的记录? 、、游标,存储过程的使用
- [导入]通过SQL语句删除重复记录
- 使用一条语句删除重复记录
- 使用一条SQL语句删除表中重复记录
- 使用DELETE ADJACENT DUPLICATES FROM 删除内表邻近重复记录需要注意事项
- 使用SQL语句对重复记录查询、统计重复次数、删除重复数据
- mysql-连接及子查询使用删除重复记录
- 使用一条SQL语句删除表中重复记录
- 使用一条SQL语句删除表中重复记录
- 使用一条SQL语句删除表中重复记录
- 使用SQL语句查询表中重复记录并删除
- 对重复的记录使用SQL进行查询和删除等操作
- 如何使用Oracle查询并删除重复记录的SQL语句
- 【SQL】通过rowid查找及删除重复记录