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)
尝试这个:
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)
如果条件为真,选择将仅返回行,重要的是,如果为假,则不会返回任何行 - 这意味着仅当条件为真时才会发生插入,否则什么也不会发生。
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |