如何删除重复行并更新表

2023-12-05

我的表中有重复的行。

我有两个通过外键连接的表

regions (id)
orders (region_id)

这些地区有重复的名称。我想删除这些重复的行并更新订单表,重复的外键现在将设置为仅保留区域表中的现有名称。

Example:

regions table:

id  name
1 | test
2 | test
3 | foo

orders table:

id region_id
6 | 1
7 | 2
9 | 3

I want

orders table:

id region_id
6 | 1
7 | 1
9 | 3

regions table:

id  name
1 | test
3 | foo

我可以使用以下 SQL 获取重复行:

SELECT name, count(id) as cnt FROM regions 
GROUP BY name HAVING cnt > 1

如何将此选择与订单表连接并删除重复的行并更新表?


要更新订单表,类似于:

update  orders
join    regions r1
on      r1.id = orders.region_id
set     orders.region_id = 
        (
        select  min(r2.id)
        from    regions r2
        where   r2.name = r1.name
        )

之后,您可以使用以下命令删除重复的行:

delete  regions
from    regions
where   id not in
        (
        select  id
        from    (
                select  min(id) as id
                from    regions
                group by
                    name
                ) as SubqueryAlias
        )

需要双重子查询以避免MySQL错误ERROR 1093 (HY000) at line 36: You can't specify target table 'regions' for update in FROM clause.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除重复行并更新表 的相关文章

  • 用于全文搜索和 2 亿多条记录的数据库

    我即将创建一个包含至少 2 亿个条目的庞大数据库 数据库需要可使用全文进行搜索 并且速度应该很快 我的数据库从许多不同的数据源获取数据 我需要定期导入新的或更新的数据 将我的所有数据存储在像 mysql 这样的关系数据库中 然后创建一个 n
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • MySQL,连接两列

    MySQL 表中有两列 SUBJECT and YEAR 我想生成一个字母数字唯一编号 其中包含主题和年份的串联数据 我怎样才能做到这一点 是否可以使用像这样的简单运算符 您可以使用CONCAT http dev mysql com doc
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • mysql时间比较

    我有 job start 和 job end 时间 timediff 会给我时间差 现在我想看看这项工作是否花费了超过 2 小时 30 分钟 我如何比较它 如果我这样做 我会收到错误 timediff job start job end g
  • “create_date”时间戳字段的默认值无效

    我有以下 sql 创建语句 mysql gt CREATE TABLE IF NOT EXISTS erp je menus gt id INT 11 NOT NULL AUTO INCREMENT gt name VARCHAR 100
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • parent_id 是外键(自引用)并且为 null?

    浏览 Bill Karwin 的书 SQL Antipatterns 第 3 章 Naive Trees 邻接表 父子关系 有一个注释表的示例 CREATE TABLE Comments comment id SERIAL PRIMARY
  • 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

    作为良好的做法 我只将图像链接存储在数据库中 问题是 我应该如何存储图像的链接 假设它在 c 上 c image jpg 我应该使用哪段 PHP 代码来显示该图像 我只显示路径 我该怎么做才能显示图像 我可以用这个吗 query SELEC
  • 连接数据库错误类型:2002:权限被拒绝

    我正在尝试使用以下脚本连接数据库 cxn test php
  • 如何处理多个连接

    我有一个复杂的查询 需要总共 4 个表中的字段 内部联接导致查询花费的时间比应有的时间长得多 我已经运行了一个 EXPLAIN 语句 其可视化结果附在下面 这是我的查询 SELECT pending corrections correcte
  • 如何在chart.js中使用JSON数据?

    您好 我一直在尝试使用 MYSQL 数据库中的数据 并使用它们通过 Chart js 创建图形图表 我将数据编码为 JSON 数据 通过 php 文件名 data1 php 现在我需要使用 Jquery 或 javascript 将这些 J
  • 如何更改mysql.sock?

    我已经通过二进制安装安装了mysql并按照以下步骤操作http dev mysql com doc refman 5 0 en binary installation html http dev mysql com doc refman 5
  • JPA:如何将字符串持久保存到数据库字段中,输入 MYSQL Text

    需求是用户可以写文章 所以我选择typeText为了contentmysql数据库内的字段 我怎样才能转换Java String into MySQL Text 干得好Jim Tough Entity public class Articl
  • 对不同的数据库和表进行一次性查询

    我有一个 Rails 应用程序 侧面有一个 WordPress 博客 完全单独位于 blog 客户想要 Rails 应用程序主页上的最新博客文章 因此我需要对 word press 数据库进行一次性 mysql 查询 我将如何在 Rails
  • 使用 PHP MySql 进行关键字搜索?

    我的 mysql 表中有标题 varchar 描述 text 关键字 varchar 字段 我保留了关键字字段 因为我认为我只会在这个字段中搜索 但我现在需要在所有三个字段中进行搜索 所以对于关键字 word1 word2 word3 我的
  • 使用整数数组设置外键

    我对使用 SQL 还很陌生 但我在 Stack Overflow 上遇到过这个关于使用标签的问题 推荐用于标记或标记的 SQL 数据库设计 https stackoverflow com questions 20856 recommende
  • Python中的MariaDB连接器无法连接到远程服务器

    我使用与远程 Mariadb 服务器的连接已有几个月了 今天 无法再通过 macOS 上的 python mariadb 模块和 mariadb 连接器建立连接 基本安装如下 brew install mariadb connector c
  • InnoDB:使用事务批量插入或组合多个查询?

    做批量的时候INSERT在InnoDB中 我应该使用事务吗 START TRANSACTION INSERT INTO tbl name a b c VALUES 1 2 3 INSERT INTO tbl name a b c VALUE

随机推荐