我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL如何消除重复行

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL如何消除重复行

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

sql语句


----------------全部字段重复------------------------
 --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<value);
 
 
 目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。
 
 
 ------------------删除特定重复行--------------
 --主要通过order by +limit 或者直接limit 
 create table test_3(id int,value int);
 insert test_3 select 1,2 union all select 1,3 union all select 1,4 union all select 2,3;
 --这是要保留ID=1 value最小的那个记录,删除其他id为的记录
 delete from test_3 where id=1 order by value desc limit 2;
 select * from test_3;
+------+-------+
| id  | value |
+------+-------+
|  1 |   2 |
|  2 |   3 |
+------+-------+
 如果你只想删除任意的记录 保留一条 就可以去掉order by

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL如何消除重复行

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql消除重复行怎么办

可以通过以下方式消除 mysql 中的重复行:使用 unique 或 primary key 约束强制唯一性。使用 distinct 关键字过滤重复行。使用 group by 子句对数据进行分组。使用 delete 语句删除重复行。使用第三
mysql消除重复行怎么办
2024-05-30

mysql中怎么用distinct消除重复行

在MySQL中,可以使用DISTINCT关键字来消除查询结果中的重复行。例如:SELECT DISTINCT column1, column2FROM table_name;在上面的例子中,column1和column2是要查询的列,t
mysql中怎么用distinct消除重复行
2024-04-22

mysql怎么消除重复行的关键字

在MySQL中,可以使用关键字DISTINCT来消除重复行。例如,假设有一个名为employees的表,包含以下数据:```+----+-------+-----+| id | name | age |+----+-------+----
2023-09-29

pd.drop_duplicates如何删除重复行

这篇文章主要介绍了pd.drop_duplicates如何删除重复行的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pd.drop_duplicates如何删除重复行文章都会有所收获,下面我们一起来看看吧。dro
2023-07-02

oracle怎么消除重复数据

oracle 中消除重复数据的有效方法有:使用 unique 约束强制每行唯一。使用 primary key 约束指定聚集列和唯一性。建立唯一索引,快速识别重复值。使用 merge 语句合并或更新重复行。使用 delete 语句,根据条件删
oracle怎么消除重复数据
2024-05-21

批处理如何实现删除重复行

这篇文章给大家分享的是有关批处理如何实现删除重复行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:@echo off :: 删除重复的行,但不能保留空行 :: 对不符合变量命名规则、变量个数超过限制的文本
2023-06-09

python 去除重复行

from pandas import read_csv;df = read_csv('D://PA//4.3//data.csv')newDF = df.drop_duplicates();
2023-01-31

rabbitmq如何保证消息不重复消费

RabbitMQ无法直接保证消息消费的唯一性,但可以通过以下几种方法来尽量避免消息的重复消费:1. 消费端手动确认:消费者从队列中取出消息后必须手动确认消费完成,确认后消息才会从队列中移除。如果消费者在处理消息过程中发生异常或崩溃,Rabb
2023-09-20

JAVA 如何实现大文本去除重复行

这期内容当中小编将会给大家带来有关JAVA 如何实现大文本去除重复行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上
2023-06-03

MySQL如何查询重复记录并进行去重

可以使用以下方法来查询重复记录并进行去重:查询重复记录:SELECT column1, column2, COUNT(*)FROM table_nameGROUP BY column1, column2HAVING COUNT(*)
MySQL如何查询重复记录并进行去重
2024-03-06

编程热搜

目录