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

mysql怎么删除重复数据

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

mysql怎么删除重复数据

这篇文章主要讲解了“mysql怎么删除重复数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql怎么删除重复数据”吧!

sku对应的重量表,应该一个sku_id 对应唯一 一条重量数据,由于程序错误导致出现一样的冗余数据。只保留一条,其他的删除。

字段说明
id自增
sku_idsku_id标识
weight重量

假设表名:weight

查询有重复数据的列表

SELECT sku_id,COUNT(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1

查询重复数据里面每个最小的id

SELECT min(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1

查询去掉重复数据最小id的其他数据

SELECT id,sku_id FROM weight WHERE sku_id IN(
    SELECT sku_id FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN(
    SELECT MIN(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)

删除去掉重复数据最小id的其他数据

DELETE FROM weight WHERE sku_id IN(
    SELECT sku_id FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN(
    SELECT MIN(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)

原因是:删除这个表的同时又查询了这个表,查询这个表的同时又去删除了这个表,可以理解为死锁。mysql不支持这种删除查询同一张表的操作

错误代码: 1093You can't specify target table 'weight' for update in FROM clause

解决办法如下:把要删除的数据查询出来做为一个第三方表,然后筛选删除。

DELETE FROM `weight` WHERE sku_id IN(
    SELECT sku_id FROM (SELECT sku_id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table1)AND id NOT IN (
    SELECT id FROM (SELECT MIN(id) AS id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table2)

更新也和上面操作原理相同。

感谢各位的阅读,以上就是“mysql怎么删除重复数据”的内容了,经过本文的学习后,相信大家对mysql怎么删除重复数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

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

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

mysql怎么删除重复数据

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

下载Word文档

猜你喜欢

mysql中怎么删除重复数据

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

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

mysql怎么批量删除重复数据

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

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

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

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

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

mongodb怎么删除重复数据

在MongoDB中删除重复数据可以使用聚合管道和$group操作符来实现。以下是一种常见的方法:1. 使用聚合管道和$group操作符找到重复数据:javascriptdb.collection.aggregate([{$group: {_
2023-10-20

SQL怎么删除重复数据

这篇文章主要介绍“SQL怎么删除重复数据”,在日常操作中,相信很多人在SQL怎么删除重复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL怎么删除重复数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-07-02

oracle怎么删除重复数据

oracle 提供了三种删除重复数据的方法:使用 delete 语句根据指定列分组,保留每组中 rowid 最小的行。使用 merge 语句根据指定列分组,使用 merge 语句匹配源表和目标表中的行,并删除重复行。使用 distinct
oracle怎么删除重复数据
2024-05-21

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

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

mysql删除数据怎么恢复

已删除的 mysql 数据可以通过三种方法恢复:从备份恢复、使用 mysql 二进制日志或使用磁盘恢复工具,需注意数据未被覆盖,在操作前备份数据库。MySQL 数据恢复:删除数据的补救措施如何恢复已删除的 MySQL 数据?已删除的 M
mysql删除数据怎么恢复
2024-05-30

编程热搜

目录