2013-09-05 105 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()函數。確保你使用的是正確的。