我已经通过谷歌和这里搜索但没有找到我的问题的答案。
我正在尝试以这种方式在查询(而不是存储过程)中使用 IF:
IF EXISTS (SELECT * FROM TABLE WHERE COLUMN=VALUE) THEN
DO SOMETHING
END IF;
我在 MySql Workbench 中尝试过但没有用(语法错误)。
有人知道是否可以以这种方式使用 IF 吗?
提前致谢。
我已经通过谷歌和这里搜索但没有找到我的问题的答案。
我正在尝试以这种方式在查询(而不是存储过程)中使用 IF:
IF EXISTS (SELECT * FROM TABLE WHERE COLUMN=VALUE) THEN
DO SOMETHING
END IF;
我在 MySql Workbench 中尝试过但没有用(语法错误)。
有人知道是否可以以这种方式使用 IF 吗?
提前致谢。
这取决于什么是某事
如果是 UPDATE、DELETE 或 SELECT,则可以在 where 子句中指定条件。
WHERE IF( (SELECT COUNT(*) FROM TABLE WHERE COLUMN=VALUE) > 0, 1, 2) = 1
对于其他语句(INSERT、CREATE 等),我认为这是不可能的。
在您的评论中,您说“某事”是一项INSERT
操作。然后,您可以,而不是:
INSERT INTO tableName
(colA, colB, ...)
VALUES
(a, b, ...) ;
利用:
INSERT INTO tableName
(colA, colB, ...)
SELECT
a, b, ...
FROM
dual
WHERE
EXISTS (SELECT * FROM TABLE WHERE COLUMN=VALUE) ;