- 浏览: 984165 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
有关mysql删除重复记录的方法,我在网上看到很多文章,很多是照抄的,我自己按网上的方法实验了一下,没有一个sql语句就能解决的方法,不知道有没有高手可以出招。
我试验的过程如下:
mysql> select * from duplicate;
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 2 | wang |
| 3 | wdang |
| 4 | wdang |
| 5 | wdand |
| 6 | wddda |
+----+-------+
6 rows in set (0.00 sec)
select * from duplicate where id in(select min(id) from duplicate group by name);
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 3 | wdang |
| 5 | wdand |
| 6 | wddda |
+----+-------+
4 rows in set (0.01 sec)
mysql> delete from duplicate where id not in(select min(id) from duplicate group by name);
ERROR 1093 (HY000): You can't specify target table 'duplicate' for update in FROM clause
最后我用了笨办法,复制无重复记录到新表格,删除旧表格,然后重命名新表格为旧表名称。
mysql> select * from duplicate where id in(select min(id) from duplicate group by name);
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 3 | wdang |
| 5 | wdand |
| 6 | wddda |
+----+-------+
4 rows in set (0.01 sec)
mysql> create table duplica select * from duplicate where id in(select min(id) from duplicate group by name);
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> drop table duplicate;
Query OK, 0 rows affected (0.01 sec)
mysql> alter table duplica rename to duplicate;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from duplicate;
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 3 | wdang |
| 5 | wdand |
| 6 | wddda |
+----+-------+
4 rows in set (0.00 sec)
mysql> alter table duplicate modify id int(2) not null primary key auto_increment;
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
后来想了一个语句搞定了:
mysql> use mysql
Database changed
mysql> select * from duplicate;
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 3 | wdang |
| 5 | wdand |
| 6 | wddda |
| 2 | wang |
| 4 | wdang |
+----+-------+
6 rows in set (0.00 sec)
mysql> delete duplicate as a from duplicate as a,
-> (
-> select * from duplicate group by name having count(1)>1) as b
-> where a.name=b.name and a.id > b.id;
Query OK, 2 rows affected (0.00 sec)
mysql> select * from duplicate;
+----+-------+
| id | name |
+----+-------+
| 1 | wang |
| 3 | wdang |
| 5 | wdand |
| 6 | wddda |
+----+-------+
4 rows in set (0.00 sec)
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/7_databases/mysql/Mysqljs/20100710/399218.html
发表评论
-
VS2010 C++下编译调试MongoDB源码[转]
2011-12-17 00:48 1314考虑到mongodb使用了boost库源码,参考mongodb ... -
mysql 批量update
2011-05-25 17:56 2898我们都知道在MySQL中批量insert的速度会比一条条ins ... -
MySQL查询及删除重复记录的方法
2011-05-06 18:43 1125查询及删除重复记录的方法(一)1、查找表中多余的重复记录, ... -
Java嵌入式数据库LMini-0.1.2及其通讯录使用示例发布【转】
2011-05-06 01:14 815文章关键字:Java 嵌入 ... -
Java开源数据库、Java嵌入式数据库、Java内存数据库 第一部分
2011-05-05 20:33 2142Java免费开源数据库、Java 嵌入式数据库、Java ... -
Java开源数据库、Java嵌入式数据库、Java内存数据库 第二部分
2011-05-05 20:32 1576Apache Xindice Apache Xin ... -
Java嵌入式数据库LMini-0.1.2及其通讯录使用示例发布
2011-05-05 20:32 805[转]下载地址(这些小程序依例丢在code.google上 ... -
轻松掌握MySQL数据库锁机制的相关原理
2011-03-29 19:40 853《轻松掌握MySQL数据库 ... -
MySQL错误_中文参照列表
2011-02-15 20:26 704MySQL错误_中文参照列表 1005:创建表失败 ... -
mysql 的最大连接
2011-02-15 20:25 718mysql 的最大连接 系统不能连接数据库,关键要看两个数据 ... -
查询及删除重复记录的方法 (一) 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people whe
2011-02-15 20:23 1356一个MYSQL多值查询的存储过程 DELIMITER $$ ... -
MySQL查询及删除重复记录的方法
2011-02-15 20:22 899MySQL查询及删除重复记录的方法 查询及删除重复记录的方法 ... -
引用 [原创]数据库事务
2011-02-12 23:05 865引用 [原创]数据库事务 数据库事务 200 ... -
引用 [转]转一个关于优化sql的文章
2011-02-12 23:04 717引用 [转]转一个关于优化sql的文章 数据 ... -
JDBC事务隔离级别
2011-02-12 23:04 1039JDBC事务隔离级别 数据库事务 2009- ... -
jdbc查看数据库事务隔离级别
2011-02-12 23:01 1523jdbc查看数据库事务隔离级别 数据库事务 ... -
引用 数据库范式详细解释
2011-02-12 22:59 1119引用 数据库范式详细解释 数据库及设计 20 ... -
数据库设计的三范式
2011-02-12 22:58 1014数据库设计的三范式 数据库及设计 2009- ...
相关推荐
MySQL删除重复记录方法。
删除重复记录 删除数据表中的重复记录,包括MySQL、SQL Server、Oracle等
本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having ...
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
mysql彻底理解删除重复记录sql脚本,只保留一条记录
防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了。 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,...
Mysql查询重复语句,可以快速验证数据是否重复.
数据操纵语言包括INSERT、UPDATE和DELETE。DELETE语句主要是用来执行数据的删除操作...但是在视图中删除数据记录时,还需要有一些额外的限制。这一章就主要介绍如何使用DELETE语句在数据表和视图中删除数据记录的方法。
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多字段删除重复数据保留id最大的.txt
多表update sql语句总结mysql锁表和解锁语句分享MySQL中基本的多表连接查询教程MySQL表字段设置默认值(图文教程及注意细节)MySQL中使用表别名与字段别名的基本教程mysql查询表里的重复数据方法mysql 导入导出数据库...
通过存储过程,删除Mysql数据库表中的重复记录,只保留一条;
查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的。
NULL 博文链接:https://onestopweb.iteye.com/blog/2318954
方案一:使用ignore关键字 ... 这样当有重复记录就会忽略,执行后返回数字0 还有个应用就是复制表,避免重复记录: 代码如下: INSERT IGNORE INTO `table_1` (`name`) SELECT `name` FROM `table_2`; 方案二:使用
chat聊天室增加mysql记录功能 nodejs
表结构: mysql> desc demo; +——-+——————+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +——-+——————+——+—–+———+—————-+ | id | int(11) unsigned |...
用Distinct在MySQL中查询多条不重复记录值,绝对的物有所值
利用truncate命令清除记录(如果已有数据会删除) mysql> truncate t1; Query OK, 0 rows affected (0.02 sec) 插入一条数据,再查询看ID mysql> insert into t1 (name) values ('ac6'); mysql> select * from t1; ...