【问题标题】:SQL IF same then ADDSQL IF 相同然后添加
【发布时间】:2015-09-11 14:35:34
【问题描述】:

我想要做的是,在Table1.xxx 中找到一个特定的字符串,如果它匹配,那么它会将 nnn 和 mmm 中的数字添加到 'Table2' 中匹配的uid 然后删除该记录。

Table1
|   uid |   xxx |   nnn |   mmm |
---------------------------------
|   100 |   abc |   111 |   222 |
|   121 |   def |   144 |   244 |
|   100 |   ghi |   411 |   844 |

表2

|   uid |   nnn |   mmm |
 -----------------------
|   100 |   644 |   441 |

【问题讨论】:

  • 您是否有一个您一直在处理的查询,我们可以查看一下?请说明您正在解决这个问题的过程中,以便我们可以帮助您克服困难。
  • 不能同时更新和删除。
  • 这应该是一个简单的UPDATEJOIN
  • 请根据你的数据做一个具体的例子。
  • 很好。祝你好运。你有问题吗?该站点用于编程问题。这不是一个倾倒你的待办事项列表的地方。

标签: mysql if-statement add


【解决方案1】:

这是一个UPDATE 和一个JOIN

UPDATE table2 AS t2
JOIN table1 AS t1 ON t1.uid = t2.uid
SET t2.nnn = t2.nnn + t1.nnn, t2.mmm = t2.mmm + t1.mmm

从表 1 中删除记录:

DELETE t1 FROM table1 AS t1
JOIN table2 AS t2 ON t1.uid = t2.uid

您应该在事务中执行这些操作,以确保 DELETE 查询仅删除之前 UPDATE 中使用的行。

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多