我通过谷歌和这里进行了搜索,但没有找到我的问题的答案。
我试图以这种方式在查询(而不是存储过程)中使用IF:
IF EXISTS (SELECT * FROM TABLE WHERE COLUMN=VALUE) THEN
DO SOMETHING
END IF;
我在MySql Workbench中尝试过但没有工作(语法错误)。
有人知道是否可以这样使用IF?
提前致谢。
答案 0 :(得分:1)
这取决于什么是SOMETHING
如果是UPDATE,DELETE或SELECT,则可以在where子句中指定条件。
WHERE IF( (SELECT COUNT(*) FROM TABLE WHERE COLUMN=VALUE) > 0, 1, 2) = 1
对于其他陈述(INSERT,CREATE等),我认为这是不可能的。
答案 1 :(得分:0)
在您的评论中,您说“SOMETHING”是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) ;