千家信息网

MySQL如何消除重复行

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关MySQL如何消除重复行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。sql语句/*MySQL 消除重复行的一些方法---Chu Minfei--
千家信息网最后更新 2026年11月01日MySQL如何消除重复行

这篇文章给大家分享的是有关MySQL如何消除重复行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

sql语句

/*MySQL 消除重复行的一些方法---Chu Minfei---2010-08-12 22:49:44.660--引用转载请注明出处:http://blog.csdn.NET/feixianxxx*/----------------全部字段重复------------------------ --1使用表替换来删除重复项 create table test_1(id int,value int); insert test_1 select 1,2 union all select 1,2 union all select 2,3; --建立一个和源表结构一样的空的临时表 create table tmp like test_1; --向临时表插入不重复的记录 insert tmp select distinct * from test_1; --删除原表 drop table test_1; --更改临时表名为目标表 rename table tmp to test_1; --显示 mysql> select * from test_1;+------+-------+| id  | value |+------+-------+|  1 |   2 ||  2 |   3 |+------+-------+ --2.添加auto_increment属性列(这个方法只能用于MyISAM或者BDB引擎的表) create table test_1(id int,value int) engine=MyISAM; insert test_1 select 1,2 union all select 1,2 union all select 2,3; alter table test_1 add id2 int not null auto_increment, add primary key(id,value,id2); select * from test_1;+----+-------+-----+| id | value | id2 |+----+-------+-----+| 1 |   2 |  1 || 1 |   2 |  2 || 2 |   3 |  1 |+----+-------+-----+  delete from test_1 where id2<>1;  alter table test_1 drop id2;  select * from test_1;  +----+-------+| id | value |+----+-------+| 1 |   2 || 2 |   3 |+----+-------+-------------------部分字段重复-----------------------1.加索引的方式 create table test_2(id int,value int); insert test_2 select 1,2 union all select 1,3 union all select 2,3; Alter IGNORE table test_2 add primary key(id); select * from test_2; +----+-------+| id | value |+----+-------+| 1 |   2 || 2 |   3 |+----+-------+ 我们可以看到 1 3 这条记录消失了  我们这里也可以使用Unique约束 因为有可能列中有NULL值,但是这里NULL就可以多个了.. --2.联合表删除 create table test_2(id int,value int); insert test_2 select 1,2 union all select 1,3 union all select 2,3; delete A from test_2 a join (select MAX(value) as v ,ID from test_2 group by id) b on a.id=b.id and a.value<>b.v; select * from test_2; +------+-------+| id  | value |+------+-------+|  1 |   3 ||  2 |   3 |+------+-------+--3.使用Increment_auto也可以就是上面全部字段去重的第二个方法--4.容易错误的方法--有些朋友可能会想到子查询的方法,我们来试验一下 create table test_2(id int,value int); insert test_2 select 1,2 union all select 1,3 union all select 2,3; delete a from test_2 a where exists(select * from test_2 where a.id=id and a.value

感谢各位的阅读!关于"MySQL如何消除重复行"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

方法 字段 内容 更多 篇文章 查询 不错 实用 最小 出处 同时 多个 就是 属性 引擎 文章 方式 朋友 目标 看吧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技金融是不是互联网金融 科技互联网政务服务 互联网巨头科技公司 云电互联网科技 丰台科技园 互联网 互联网科技公司名称 互联网金融监管科技 互联网科技股午盘股票涨跌 阿里巴巴算科技企业还是互联网 汽车互联网创新科技园 互联网金融科技公司干啥的 港股科技和互联网 互联网科技与大数据专业 互联网第三次科技革命特征 伍佰万互联网科技怎么赚钱 互联网科技数字货币 保山互联网科技靠谱吗 易租星互联网科技有限公司 科技互联网经济论坛 科技互联网专业工作会议发言稿 科技互联网龙头 上海卓越科技 互联网 深圳市运趣互联网科技有限公司 云创客互联网科技公司 宁夏众和广鑫互联网科技有限公司 威龙国际互联网科技公司 怎样加入科技互联网 广东鹅鹅鹅互联网科技有限公司 广州梦谷互联网科技有限公司领导 株洲百竞科技的互联网营销顾问
0