+ -
当前位置:首页 → 问答吧 → mySQL删除相同数据的SQL语句怎么写?

mySQL删除相同数据的SQL语句怎么写?

时间:2011-12-26

来源:互联网

表名table_name
id title age
1 张飒 19
2 李思 20
3 18
4 赵柳 22
5 孙二  
6 孙二 18
7 张飒 15
8 张飒 19
9 张飒 19
9 王二 17


想要的结果
1 张飒 19
2 李思 20
3 18
4 赵柳 22
5 孙二  
7 张飒 15
9 王二 17


作者: ccccdddeeeaaabb   发布时间: 2011-12-26

DELETE FROM table_name WHERE id NOT IN (SELECT id FROM (SELECT * FROM table_name) t GROUP BY `title`);

作者: Mr_merlin   发布时间: 2011-12-26

引用 1 楼 mr_merlin 的回复:
DELETE FROM table_name WHERE id NOT IN (SELECT id FROM (SELECT * FROM table_name) t GROUP BY `title`);

 小表试了下,OK。
但是在才5W数据的表里就当机了。。。(有文本的数据在这表里,比较大是不这原因?)
#2006 - MySQL server has gone away

作者: ccccdddeeeaaabb   发布时间: 2011-12-26

GROUP BY `title 分组

作者: csharpvb   发布时间: 2011-12-26

引用 3 楼 csharpvb 的回复:
GROUP BY `title 分组

能举个例子不?

作者: ccccdddeeeaaabb   发布时间: 2011-12-26

建临时表试试:

SQL code

CREATE TABLE table_tmp AS SELECT * FROM table_name GROUP BY `title`;

TRUNCATE TABLE table_name;

INSERT INTO table_name SELECT * FROM table_tmp;

作者: Mr_merlin   发布时间: 2011-12-26

引用 5 楼 mr_merlin 的回复:
建临时表试试:


SQL code

CREATE TABLE table_tmp AS SELECT * FROM table_name GROUP BY `title`;

TRUNCATE TABLE table_name;

INSERT INTO table_name SELECT * FROM table_tmp;

错误
SQL 查询: 

CREATE TABLE table_tmp AS SELECT * 
FROM table_name
GROUP BY `url` ;


MySQL 返回:

#2006 - MySQL server has gone away

作者: ccccdddeeeaaabb   发布时间: 2011-12-26

引用 5 楼 mr_merlin 的回复:
建临时表试试:


SQL code

CREATE TABLE table_tmp AS SELECT * FROM table_name GROUP BY `title`;

TRUNCATE TABLE table_name;

INSERT INTO table_name SELECT * FROM table_tmp;

是不是表太大了的原因啊?
一起有200mb..

作者: ccccdddeeeaaabb   发布时间: 2011-12-26

修改mysql配置文件

wait_timeout=100000
interactive_timeout = 100000

作者: Mr_merlin   发布时间: 2011-12-26

引用 8 楼 mr_merlin 的回复:
修改mysql配置文件

wait_timeout=100000
interactive_timeout = 100000

是这个吗?
#innodb_lock_wait_timeout = 100000

还有这个找不到呢。。
interactive_timeout =

作者: ccccdddeeeaaabb   发布时间: 2011-12-26

引用 9 楼 ccccdddeeeaaabb 的回复:

是这个吗?
#innodb_lock_wait_timeout = 100000

还有这个找不到呢。。
interactive_timeout =


没有加上去

作者: Mr_merlin   发布时间: 2011-12-26

引用 10 楼 mr_merlin 的回复:
引用 9 楼 ccccdddeeeaaabb 的回复:

是这个吗?
#innodb_lock_wait_timeout = 100000

还有这个找不到呢。。
interactive_timeout =


没有加上去

加上去了。/
响应2分钟后,还是报一样的错。。。

作者: ccccdddeeeaaabb   发布时间: 2011-12-26