程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql刪除重復數據

mysql刪除重復數據

編輯:MySQL綜合教程

mysql刪除重復數據   刪除表內重復數據的一種解決方案:    www.2cto.com   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   www.2cto.com   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, 0 rows affected (0.09 sec)   mysql> select count(*) from tt; +----------+ | count(*) | +----------+ |  2000002 | +----------+ 1 row in set (2.54 sec)   到此OK,這種方法效率不是很高,期待更有效率的方法.  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved