我想知道当 IF-Condition 为真时是否有可能在表中插入一行:
SET @Value1 := '1';
SET @Value2 := '2';
IF(@Value2 >= @Value1)
THEN INSERT INTO `Table`
(`Row1`, `Row2`)
VALUES
('Valuecheck', 'Second value is greater than first value');
END IF;
MySQL 报告错误 #1064 - 你的 SQL 语法有错误,但我找不到问题所在。仅当 IF 子句为真时才应执行插入。
最佳答案
您可以执行 INSERT...SELECT
并将您的条件放在 WHERE
子句中;但是,由于 MySQL 需要 FROM
而您没有引用表,因此您需要使用它的“虚拟”表,称为 DUAL。
像这样:
SET @Value1 := '1';
SET @Value2 := '2';
INSERT INTO `Table`(`Row1`, `Row2`)
SELECT 'Valuecheck', 'Second value is greater than first value'
FROM DUAL
WHERE @Value2 >= @Value1
;
关于mysql - 仅当 IF 条件为真时才插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510484/