• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql删除重复数据_MySQL

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

gaodaima.com

mysql删除重复数据

删除表内重复数据的一种解决方案:

Create Table: CREATE TABLE `tt` (

`id` int(11) DEFAULT NULL,

`name` varchar(30) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

200万的数据

100万 id从1到100w name是zz

100条 id从1到100 name是zz

100万 id从1到100w name是mike

100条 id从1到100 name是mike

存储过程:

新增sizes+1条数据,name为params

CREATE PROCEDURE pro_insert2(in sizes int,in params varchar(30))

begin

declare i int;

start transaction;

set i = 0;

while i<=sizes do

insert into tt values(i,params);

set i=i+1;

end while;

commit;

end

mysql命令行操作:插入测试数据

call pro_insert2(1000000,'zz');

call pro_insert2(100,'zz');

call pro_insert2(1000000,'mike');

call pro_insert2(100,'mike');

mysql> select count(*) from tt;

+———-+

| count(*) |

+———-+

| 2000204 |

+———-+

1 row in set (0.00 sec)

Create Table: CREATE TABLE `tt2` (

`id` int(11) DEFAULT NULL,

`name` varchar(30) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

mysql> insert into tt2 (select distinct * from tt);

Query OK, 2000002 rows affected (51.55 sec)

Records: 2000002 Duplicates: 0 Warnings: 0

mysql> drop table tt;

Query OK, 0 rows affected (0.10 sec)

mysql> alter table tt2 rename tt;

Query OK本文来源gao.dai.ma.com搞@代*码(网$, 0 rows affected (0.09 sec)

mysql> select count(*) from tt;

+———-+

| count(*) |

+———-+

| 2000002 |

+———-+

1 row in set (2.54 sec)

到此OK,这种方法效率不是很高,期待更有效率的方法.

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql删除重复数据_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址