2012-04-02 61 views
-1

我試圖得到一個布爾值,如果等於1,圖像被插入。我想設置一個新的值如果東西= 1

我觀看的教程,和使這個作爲起始,以測試它是否工作:

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1 

我試圖說如果IF_DRAFT_BEER= 1,則將該值設置爲5 ,否則2.如果有效,我會嘗試實施圖像。

我印刷這種方式:

$row['IF_DRAFT_BEER'] 

然而插入後並且如果子句,沒有行被示出了。

任何人都知道爲什麼會發生這種情況?謝謝! :)

+0

爲什麼不使用'UPDATE'兩次? – hjpotter92 2012-04-02 18:17:08

回答

2

那麼,你的線;

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1 

基本上都會給出結果52,然後把它比作1。由於52都不等於1,所以比較永遠不會成立,並且查詢不會返回任何行。

我不太清楚爲什麼你會在where子句中有這種計算,但我懷疑你會想將計算移動到select並真正得到它,a'la ;

SELECT IF(IF_DRAFT_BEER = '1', 5, 2) AS IF_DRAFT_BEER 

這樣它會顯示在您的結果$row

+0

這樣做的技巧,謝謝! – pufAmuf 2012-04-02 18:28:32

3

您將始終從該查詢中獲得布爾型假。您的IF()致電返回52。然後你測試5或2對1,它總是會出現FALSE。

刪除最後= 1

AND IF(IF_DRAFT_BEER = 1, 5, 2) 

所以5和2實際上可以返回。

+0

謝謝馬克,那就是訣竅。然而,我注意到返回的數字沒有被存儲,並且只打印了真實的布爾值。我將如何解決這個問題? – pufAmuf 2012-04-02 18:23:33

+0

那麼,有'和'...沒有看到整個查詢,不能說出什麼問題可能。 – 2012-04-02 18:37:23

相關問題