我想知道当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子句为真时执行插入。
答案 0 :(得分:1)
基于this answer,以下内容应该有效:
SET @Value1 := '1';
SET @Value2 := '2';
INSERT INTO `table` (`Row1`, `Row2`)
VALUES
('Valuecheck', 'Second value is greater than first value');
WHERE @Value2 >= @Value1
答案 1 :(得分:1)
您可以执行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
;