Mysql关于重复键更新+子查询

2024-05-29

使用这个问题的答案:需要 MySQL INSERT - SELECT 查询具有数百万条记录的表 https://stackoverflow.com/questions/662877/need-mysql-insert-select-query-for-tables-with-millions-of-records

new_table
    * date
    * record_id (pk)
    * data_field


INSERT INTO new_table (date,record_id,data_field)
    SELECT date, record_id, data_field FROM old_table
        ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field;

我需要这个来与分组一起工作并加入..所以要编辑:

INSERT INTO new_table (date,record_id,data_field,value)
    SELECT date, record_id, data_field, SUM(other_table.value) as value FROM old_table JOIN other_table USING(record_id) GROUP BY record_id
        ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field, value = value;

我似乎无法更新该值。如果我指定 old_table.value 我会收到“未在字段列表中定义”错误。


根据文档http://dev.mysql.com/doc/refman/5.0/en/insert-select.html http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

在 ON DUPLICATE KEY UPDATE 的 value 部分中,您可以引用其他表中的列,只要您不在 SELECT 部分中使用 GROUP BY 即可。一个副作用是您必须限定值部分中的非唯一列名。

因此,您不能使用 select 查询,因为它有一个 group by 语句。你需要改用这个技巧。基本上,这会创建一个派生表供您查询。它的效率可能不是令人难以置信,但它确实有效。

INSERT INTO new_table (date,record_id,data_field,value)
    SELECT date, record_id, data_field, value 
    FROM (
        SELECT date, record_id, data_field, SUM(other_table.value) as value 
        FROM old_table
        JOIN other_table
        USING(record_id)
        GROUP BY record_id
    ) real_query 
ON DUPLICATE KEY
    UPDATE date=real_query.date, data_field=real_query.data_field, value = real_query.value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql关于重复键更新+子查询 的相关文章

  • MySQL:在一条语句上连接多个表

    我有以下数据库结构 层次结构 TABLE 产品类别 id name TABLE product id parent id name 父 ID 是产品类型 ID TABLE treeNode id parent id name type 它是
  • 将所有 PHP 错误输出到数据库而不是 error_log

    是否可以将所有 PHP 错误写入 MySQL 而不是标准的 error log 文件 我想如果我从头开始编写自己的错误处理程序 这是可能的 但我有很多遗留代码 理想情况下我只需进行 1 个全局更改即可 这可以做到吗 我认为如果不构建自己的错
  • mysql字符串转换返回0

    why select aaa 0返回 1 真 如果我有一张像这样的桌子 userid pass user1 pas1 如果我查询 select from table where userid 0 and pass 0 它给了我所有的行 My
  • MySQL 设置自动增量“Ad Hoc”

    有没有办法以 临时 方式将 mysql 的 auto increment 设置为某个整数 例如 表中已删除 N 个最新行 因此主键 auto increment 与实际行数相差 N 有没有办法将 auto increment 设置为正确的数
  • 使用 Union 或 Join - 哪个更快 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是想知道你是否有一张桌子并且联合起来会比使用联接更有效吗 我确实知道联接创建了更多列 但这更具理论性 联合是否需要像联接那样对另一
  • 如何确定选择哪个数据库

    有没有办法稍后输出当前选择的数据库的名称 只需使用 mysql query 或 mysqli query 甚至更好 或者最好使用 PDO SELECT DATABASE 附录 对于是否可以进行很多讨论FROM DUAL是否应包含在其中 在技
  • 如何使用 mysqli 设置排序规则?

    我的数据库使用 utf8 czech ci 排序规则 我也想将其设置为我的数据库连接 如果我不想要默认的 utf8 general ci Mysqli set charset 不会让我设置排序规则 Here https bugs php n
  • MySQL Socket 在数千个连续连接后拒绝连接

    我目前正在尝试在当前 Ubuntu 机器上填充 MySQL5 1 数据库 其中包含超过 5 000 000 个条目 由于程序的体系结构 对于每个 INSERT 语句 都会打开和关闭一个新的数据库连接 我知道这是一项昂贵的操作 但更改此操作需
  • 当用户单击链接时如何在表中创建新字段

    我的表格如下图所示 In order to insert data from this form into table I coded this supplier info supplier name POST supplier name
  • 检查 Laravel 模型是否已保存或查询是否已执行

    我见过很多人使用这种方式来检查 Laravel 模型是否已保存 所以现在我想知道这是否是一种安全的方法 我还可以检查下面的查询是否像这样执行 检查模型是否已保存 Eg myModel new User myModel gt firstnam
  • 数据库中无法识别的数据类型 nvarchar

    我尝试将 MySQL 服务器数据导入 PHPMyAdmin MySQL 数据库 无法识别的数据类型 nvarchar 发现 我的数据库排序规则设置为 utf general ci 您不必担心 nvarchar 消息 它是由 phpmyadm
  • SQL LIKE 实际上是如何工作的

    例如 当我有这样的字符串时 ABBBCSLAK JDK ASAAAAFJKDSKJFSDF 当我像这样使用 SQL 时 SELECT FROM table WHERE column LIKE JDK 当服务器访问 JDK 时到底会发生什么
  • 如何配置 Spring boot 以使用两个数据库?

    我在用春季启动 2 X with 休眠5连接两个不同的 MySQL 数据库 Bar 和 Foo 在不同的服务器上 我试图列出一个实体的所有信息 自己的属性和 OneToMany and ManyToOne关系 来自 REST 控制器中的方法
  • 恢复 woocommerce 订单

    最近 我的服务器团队更换了我的数据库 他们将我们以前的数据库放入其中 因此 我们丢失了某一天 特定日期 的订单详细信息 现在 服务器团队提供包含丢失当天订单详细信息的备份 现在请告诉我如何恢复这些订单 我无法用给定的备份替换我们的数据库 因
  • 有人知道一个像样的免费数据库模式逆向工程工具吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 寻找一种工具 可以自动从实时数据库创建 MySQL 数据库模式的图形表示 显示表 列和关系 ER 图 理想情况下 在 OS X 上运行的东
  • Codeigniter Cart - 将数据保存在数据库中 - 如何处理?

    我需要帮助在我的网络应用程序中处理订单和购物车 我决定使用 Codeigniter 2 中内置的 Cart 库 我看过一些关于 Cart 库的教程 我知道如何使用它 但我不知道 我什么时候应该在数据库中创建 保存该订单 当用户将商品添加到购
  • 两个sql查询的性能差异?

    我的表中有一个具有文本数据类型的字段 以下两个sql查询的性能是否有差异 select from tablename where fieldname xyz select from tablename where fieldname zyx
  • SELECT MySQL 字段包含子字符串[重复]

    这个问题在这里已经有答案了 使用 LIKE 在 MySQL 中非常常见 我们这样使用它 WHERE field LIKE substring 我们有一个子字符串 并且字段有完整的字符串 但我需要的是相反的东西 我在字段中有子字符串 所以 我
  • MySQL:进行基本搜索

    我的数据库中有一个名称表 我希望对其进行模糊搜索 例如我的数据库包含 Name ID John Smith 1 Edward Smith 2 Gabriel Gray 3 Paul Roberts 4 目前 当我通过 python 搜索数据
  • MySQL:ALTER IGNORE TABLE ADD UNIQUE,什么会被截断?

    我有一个包含 4 列的表 ID 类型 所有者 描述 ID 是 AUTO INCRMENT PRIMARY KEY 现在我想 ALTER IGNORE TABLE my table ADD UNIQUE type owner 当然 我几乎没有

随机推荐

  • Libpng、调色板 png 是否带 alpha?

    如何知道调色板 png 是否带有 alpha 我获取有关图像的信息png get IHDR 之后我看看color type PNG COLOR TYPE PALETTE 但我找不到如何知道这个 png 图像是否有 alpha 通道 PNG
  • 将 Blazor Webassemble 项目包含到现有 ASP.NET Core 项目中

    创建新的 Blazor Web assembly 项目时 有一个复选框ASP NET Core hosted https learn microsoft com en us aspnet core blazor host and deplo
  • 无论线程如何,对象是否总是能看到其最新的内部状态?

    假设我有一个带有简单整数计数变量的可运行对象 每次可运行对象运行时该变量都会递增 该对象的一个 实例被提交以在计划的执行程序服务中定期运行 class Counter implements Runnable private int coun
  • Webkit 是否有 CSS3 网格布局的有效实现?

    CSS 网格布局 编辑草案 2011 年 11 月 21 日 http dev w3 org csswg css3 grid align 我正在制作一个原型 该原型将在选定的设备和浏览器上向客户展示 目前我并不担心跨浏览器兼容性 IE10开
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 如何使鼠标事件传播到“滚动”容器中的小部件?

    所以我知道官方文档上写着 请注意 鼠标事件不会传播到滚动容器内的小部件 但我想做的正是 如何使鼠标事件通过这个小部件传播 有办法吗 我想做的就是让 待办事项应用程序 变得很棒 但为此我实际上需要拥有物品 这将是我想要完成的任务 所以我想要一
  • Rails 2.3.14:如何序列化 ActionController::Request 对象?

    我需要编写一些根据 Rails 2 3 14 控制器收到的请求对象类型执行操作的方法 但是 我不想启动整个应用程序 甚至不想启动控制器 我只想拥有这样一个对象的编组副本 以便我可以在 Rails 环境之外使用 不幸的是 ActionCont
  • Rails 中的 ActionController::RoutingError (没有路由匹配 [GET] "/favicon.ico")

    我尝试过使用 还有这个 但我仍然在日志文件中看到此错误 ActionController RoutingError No route matches GET favicon ico favicon ico 位于 public 文件夹中 我也
  • 上下文菜单未在 SwiftUI 中更新

    我正在尝试设置 SwiftUI contextMenu带有一个切换按钮Bool价值 上下文菜单的按钮文本应该在以下情况下更改 Bool切换 但上下文菜单不会更新 有没有办法强制更新上下文菜单 描述问题的示例代码 import SwiftUI
  • Swift 中计算只读属性与函数

    在 Swift WWDC 简介会话中 只读属性description被证明 class Vehicle var numberOfWheels 0 var description String return numberOfWheels wh
  • 处理 SavedInstances 并恢复活动

    基本上我的应用程序有 2 个活动 说 A 和 B A 启动 B Activity B 播放音乐并且还有通知 情况 1 当视图仍在活动 B 上时 我按主页按钮 然后单击通知 活动 B 将打开 其视图完好无损并播放音乐 因为在清单中我使用 an
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • 加速度计适用于 iphone/ipad 模拟器吗?

    据我所知 当我在 XCode 中使用 iPad 模拟器时 我的应用程序应该会触发加速计事件 但事实并非如此 我用谷歌搜索了一下 似乎加速度计没有在模拟器中实现 这是正确的吗 如果是这样 为什么他们会有 硬件 gt 摇动手势 菜单选项 我的代
  • VxWorks调度程序如何执行?

    想知道如何调用调度程序以便它可以切换任务 即使是抢占式调度或循环调度 调度程序也应该参与其中以进行任何类型的任务切换 假设一个低优先级任务有一个无限循环 调度程序什么时候介入并切换到更高优先级的任务 查询是 1 谁调用调度器 在VxWork
  • 在辅助功能模式下未检测到手势

    我正在编写一个应用程序 我需要在屏幕顶部放置一个标签 每当用户触摸它 或在其上方滑动手指 时 我需要大声读出标签文本 我尝试了以下方法 首先制作标签的可访问性元素 YES labelInfo setIsAccessibilityElemen
  • 单击另一个项目/小部件时展开/打开微调器?

    当用户单击另一个按钮时 我试图展开微调器 例如 我有一个带有值的微调器和一个 确定 按钮 当用户单击 确定 按钮而不从微调器中选择任何值时 微调器会自行扩展 是否可以在无需用户与微调器交互的情况下获得扩展微调器的事件 只需致电Spinner
  • 如何安装最新的mono和monodevelop?

    我尝试在 centOS 6 3 上安装 mono 和 monodevelop 几个小时后 我能够安装 mono 但 monodevelop 失败 我真的很惊讶在 Linux 上安装最新的 mono monodevelop 版本是多么困难和耗
  • 确定一组点是在正方形内部还是外部

    我有其中两个 bool isPointOnShape int a int b bool isPointInShape int a int b 假设我有一个正方形 第一个点 左下角 是 x y 0 0 第二个点 左上角 是 0 2 第三个点是
  • Windows Azure AppFabric 访问控制服务 (ACS) 中的 OAuth 2.0 身份提供程序

    OAuth 2 0 委派包含在 Azure AppFabric 访问控制服务中 http blogs objectsharp com cs blogs steve archive 2011 04 11 windows azure acces
  • Mysql关于重复键更新+子查询

    使用这个问题的答案 需要 MySQL INSERT SELECT 查询具有数百万条记录的表 https stackoverflow com questions 662877 need mysql insert select query fo