MYSQL INSERT如果SUMs> CONSTANT

5 mysql if-statement sum insert where

如果来自2个表的3个用户列的总和超过常量,我正在尝试插入记录.

我已经找遍了,发现你不能把用户变量IFS,WHERE的等找到你不能把SUMS IN IFS,WHERE的等我在全盘损失.这是我之前的错误代码的一个示例,如果它有帮助,则SUM在尝试在s中使用s 失败之前WHERE:

SELECT SUM(num1) INTO @mun1 FROM table1 WHERE user = '0';

SELECT SUM(num2) INTO @mun2 FROM table1 WHERE user = '0';

SELECT SUM(num3) INTO @mun3 FROM table2 WHERE column1 = 'd' AND user = '0';

SET @mun4 = @mun1 - @mun2 - @mun3;

INSERT INTO table2 (user, column1, column2) VALUES ('0', 'd', '100') WHERE @mun4 >= 100;
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 4

尝试这个:

INSERT INTO table2 (user, column1, column2) 
select '0', 'd', '100'
from dual
where (SELECT SUM(num1 + num2) FROM table1 WHERE user = '0') +
      (SELECT SUM(num3) FROM table2 WHERE column1 = 'd' AND user = '0') > 100;
Run Code Online (Sandbox Code Playgroud)

这是“插入 if 条件”问题的一般解决方案的情况:

insert into ... select ... where condition
Run Code Online (Sandbox Code Playgroud)

如果条件为真,选择将仅返回行,重要的是,如果为假,则不会返回任何行 - 这意味着仅当条件为真时才会发生插入,否则什么也不会发生。