【问题标题】:Convert UPDATE into INSERT INTO ON DUPLICATE KEY UPDATE statement将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句
【发布时间】:2016-07-05 11:13:23
【问题描述】:

我有这个运行良好的 UPDATE MySQL 语句。

UPDATE table1 
Inner Join table2 
ON table2.id = table1.gw_id 
SET table1.field1=1, table1.field2=2
WHERE table1.nick_no=4 AND table2.addr=123

我想转换此 UPDATE 语句,以便在找不到具有相同 table1_nick_no 的行时添加新行。我相信使用 INSERT INTO ON DUPLICATE KEY UPDATE 是正确的方法。但是,我尝试了很长时间,但失败了。 Adding Inner join and where clause to INSERT INTO ON DUPLICATE KEY UPDATE

我应该如何将此 UPDATE 语句转换为相应的 INSERT INTO ON DUPLICATE KEY UPDATE 语句?

【问题讨论】:

  • 在您的问题中编辑查询以使用表别名,以便我们知道列的来源。
  • Gordon Linoff,我已编辑查询以显示列所属的表。

标签: mysql sql sql-update sql-insert


【解决方案1】:

您要查找的是 MERGE 或 UPSERT(UPDATE/INSERT 的缩写)。在 mySQL 中,您可以按照以下链接中的说明实现 UPSET

http://mechanics.flite.com/blog/2013/09/30/how-to-do-an-upsert-in-mysql/

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多