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

mysql中怎么删除完全重复的数据

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

mysql中怎么删除完全重复的数据

本篇文章给大家分享的是有关mysql中怎么删除完全重复的数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

案例:
id         姓名  课程名称 分数
1         张三     数学    69
2          李四        数学    89
3          张三        数学    69
删除除了自动编号不同,其他都相同的学生冗余信息

------------------------------------------------------------------------------------------------------
按常理来说,这个sql语句应该是:
delete tablename where id not in(select min(id) from tablename group by name,kecheng,fenshu);
这种写法在sqlserver或者oracle中是支持的,但是目前是不支持的,会报类似错:You can't specify target table 'tablename' for update ,这是因为在mysql中不能同时查询一个表的数据再同时进行删除.
目前网上流行的一种解法是:
1)创建一个临时表,讲要查询的列的存入临时表中
create table temp as select ...
2)在temp表和原始表中进行操作
delete from tablename
3)drop temp...
但是这种做法,不仅浪费空间资源,同时也缺乏友好性。通过观察我们发现这类查询要解决的是如何将子查询中的表与主查询中的表区分开来,因此我们可以考虑用别名的方法,将子查询的结果放到一个别名中。
完整的sql语句如下:
DELETE FROM tablename where id not in (select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b ) ;
解释:
select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b
这个子查询的目的是从b中列出讲筛选结果,即bid的集合。
(select min(id) as bid from tablename group by name,kecheng,fenshu) as b
将分组结果中的最小的bid当做一个心的集合当做一个心的子表b,
注意mid(id)一定要有一个别名,这里取的是bid,作为b的一个列名,因为在上一级查询中要用到这个列名(红色标注)。

以上就是mysql中怎么删除完全重复的数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

免责声明:

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

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

mysql中怎么删除完全重复的数据

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

下载Word文档

猜你喜欢

oracle怎么删除完全重复的数据

要删除完全重复的数据,可以使用Oracle的DELETE语句和自连接来实现。以下是一个示例:```sqlDELETE FROM your_tableWHERE rowid NOT IN (SELECT MIN(rowid)FROM your
2023-08-15

mysql中怎么删除重复数据

在MySQL中,可以使用以下两种方法来删除重复数据:方法1:使用DISTINCT关键字和INSERT INTO SELECT语句CREATE TABLE new_table ASSELECT DISTINCT * FROM old_t
mysql中怎么删除重复数据
2024-04-09

sql如何删除完全重复数据

要删除完全重复的数据,可以使用以下SQL语句:```sqlDELETE FROM table_nameWHERE (column1, column2, column3) IN(SELECT column1, column2, column3
2023-08-08

怎么完全删除MySQL数据库

答案: 是,可以通过删除数据库及其数据目录完全删除 mysql 数据库。步骤:登陆 mysql 服务器删除数据库确认删除可选:删除数据目录如何完全删除 MySQL 数据库1. 登陆 MySQL首先,你需要使用以下命令登陆 MySQL 服
怎么完全删除MySQL数据库
2024-08-05

mysql数据库怎么完全删除

要完全删除 mysql 数据库,请执行以下步骤:连接到 mysql。选择要删除的数据库。删除数据库,并删除其中的对象(如有)。确认数据库已删除。如何完全删除 MySQL 数据库为了完全删除 MySQL 数据库,您可以按照以下步骤操作:步
mysql数据库怎么完全删除
2024-08-05

怎么在mysql数据库中删除重复的数据

本篇文章为大家展示了怎么在mysql数据库中删除重复的数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.问题引入假设一个场景,一张用户表,包含3个字段。id,identity_id,name。现
2023-06-07

怎么删除mysql重复数据库

如何删除 mysql 重复数据库查找重复数据库(使用 show databases 命令)。连接到要删除的数据库(使用 use database 命令)。删除数据库中所有表(使用 drop table 命令)。删除重复数据库(使用 drop
怎么删除mysql重复数据库
2024-08-05

mysql数据库怎么删除重复

在 MySQL 数据库中删除重复项的方法有:SELECT DISTINCT column1, column2, ...FROM table_name;SELECT column1, column2, ...FROM table_nameGR
mysql数据库怎么删除重复
2024-08-05

如何完全删除MySQL数据库中的数据

MySQL如何彻底删除数据,需要具体代码示例概述:MySQL是一种常用的关系型数据库管理系统,删除数据是数据库操作中常见的需求之一。但是简单的DELETE语句只是将数据标记为删除,而不是真正的彻底删除。本文将介绍如何使用MySQL彻底删除
如何完全删除MySQL数据库中的数据
2024-02-22

数据库mysql怎么删除重复项

要从 mysql 数据库中删除重复项,可以采取以下步骤:确定要删除重复项的列或组合列。使用 distinct 或 group by 语句删除重复行。使用 delete with 关键字永久删除重复行,确保按主键排序。如何从 MySQL 数据
数据库mysql怎么删除重复项
2024-08-05

mysql怎么删除字段重复的数据

要删除MySQL表中重复的数据,可以使用以下步骤:首先,使用 SELECT 语句查询表中的重复数据,并确定哪些字段是重复的。SELECT column1, column2, COUNT(*)FROM your_tableGROUP BY
mysql怎么删除字段重复的数据
2024-04-09

mysql怎么批量删除重复数据

要在MySQL中批量删除重复数据,您可以使用以下步骤:首先,您需要确定要删除的重复数据的列。假设您有一个表名为table_name,有一个列名为column_name,您想要删除column_name列中的重复数据。使用以下查询来查找重复数
mysql怎么批量删除重复数据
2024-04-09

mysql数据库怎么删除重复数据库

mysql 中删除重复数据库的过程如下:使用查询识别重复数据库。使用 drop database 语句删除重复数据库。使用 show databases 验证重复数据库是否已删除。如何删除 MySQL 中的重复数据库MySQL 中删除重复
mysql数据库怎么删除重复数据库
2024-08-05

编程热搜

目录