MySQL如何消除重复行
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家分享的是有关MySQL如何消除重复行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。sql语句/*MySQL 消除重复行的一些方法---Chu Minfei--
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
防灾科技学院网络安全试卷
数据库的发展的3个阶段
网络安全监控员登记表
本地mySQL数据库加密
网络安全都有哪些内容包括
高校有数据库吗
为网络安全生态构建提供哲学
怎么让服务器的资料共享
数据库技术与应用课后作业
国际航运科技与互联网大会
上海前端软件开发哪家好
二本软件开发大学有哪些问题
秦学教育网络安全
广东算力服务器租赁报价单
大学生网络安全宣传周ppt
安装服务器2008系统
nba2k显示连接服务器错误
网络安全网吧管理
学计算机网络技术的能力
新一代网络技术分类优势
超威420服务器
网络技术中心管理制度
如何部署游戏到云服务器
国际网络安全标准cc
软件开发专业学的课程
速达3000pro找不到数据库
阿里云弹性服务器
阜南县网络安全宣讲团
网络安全设计服务
星环数据库怎么按天建分区