如果mysql查询条件

时间:2013-01-19 17:04:15

标签: mysql sql if-statement

我通过谷歌和这里进行了搜索,但没有找到我的问题的答案。

我试图以这种方式在查询(而不是存储过程)中使用IF:

IF EXISTS (SELECT *  FROM TABLE WHERE COLUMN=VALUE) THEN
DO SOMETHING
END IF;

我在MySql Workbench中尝试过但没有工作(语法错误)。

有人知道是否可以这样使用IF?

提前致谢。

2 个答案:

答案 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) ;