2013-09-05 101 views
1

我有一个MySQL语句无法编译,任何人都可以给我一个它应该如何工作的基本示例?半伪代码:MySQL IF(选择)语句

IF (SELECT 'id' FROM terms WHERE name = 'thename' IS NULL) THEN 
# Do this... 
ELSE 
# do this... 
END IF 

我只是无法得到任何IF语句在所有的工作,甚至没有一个测试一个,如:

IF(1=1) 
THEN SELECT "works" 
END IF 
+3

这是一条SQL语句还是一个存储过程?您在此处使用的表单仅适用于存储过程,[如文档中所述](http://dev.mysql.com/doc/refman/5.5/en/if.html)。 – tadman

+0

很可能你正在运行它作为MySQL查询。 – user1502952

+0

SQL语句。 – ScottMcGready

回答

4

为了您的第一个例子,你不评价条件。你需要移动IS NULLSELECT外:

IF (SELECT 'id' FROM terms WHERE name = 'thename') IS NULL THEN 
... 

如果你正在运行这个SELECT语句中,您可能需要使用CASE

SELECT 
    CASE 
     WHEN (SELECT 'id' FROM terms WHERE name = 'thename') IS NULL THEN ... 
    END 

否则,请参阅IF documentation

0

IF声明不同于IF()函数。确保你使用的是正确的。