我試圖得到一個布爾值,如果等於1,圖像被插入。我想設置一個新的值如果東西= 1
我觀看的教程,和使這個作爲起始,以測試它是否工作:
AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1
我試圖說如果IF_DRAFT_BEER= 1,則將該值設置爲5 ,否則2.如果有效,我會嘗試實施圖像。
我印刷這種方式:
$row['IF_DRAFT_BEER']
然而插入後並且如果子句,沒有行被示出了。
任何人都知道爲什麼會發生這種情況?謝謝! :)
我試圖得到一個布爾值,如果等於1,圖像被插入。我想設置一個新的值如果東西= 1
我觀看的教程,和使這個作爲起始,以測試它是否工作:
AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1
我試圖說如果IF_DRAFT_BEER= 1,則將該值設置爲5 ,否則2.如果有效,我會嘗試實施圖像。
我印刷這種方式:
$row['IF_DRAFT_BEER']
然而插入後並且如果子句,沒有行被示出了。
任何人都知道爲什麼會發生這種情況?謝謝! :)
那麼,你的線;
AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1
基本上都會給出結果5
或2
,然後把它比作1
。由於5
或2
都不等於1
,所以比較永遠不會成立,並且查詢不會返回任何行。
我不太清楚爲什麼你會在where
子句中有這種計算,但我懷疑你會想將計算移動到select並真正得到它,a'la ;
SELECT IF(IF_DRAFT_BEER = '1', 5, 2) AS IF_DRAFT_BEER
這樣它會顯示在您的結果$row
。
這樣做的技巧,謝謝! – pufAmuf 2012-04-02 18:28:32
您將始終從該查詢中獲得布爾型假。您的IF()
致電返回5
或2
。然後你測試5或2對1
,它總是會出現FALSE。
刪除最後= 1
:
AND IF(IF_DRAFT_BEER = 1, 5, 2)
所以5和2實際上可以返回。
謝謝馬克,那就是訣竅。然而,我注意到返回的數字沒有被存儲,並且只打印了真實的布爾值。我將如何解決這個問題? – pufAmuf 2012-04-02 18:23:33
那麼,有'和'...沒有看到整個查詢,不能說出什麼問題可能。 – 2012-04-02 18:37:23
爲什麼不使用'UPDATE'兩次? – hjpotter92 2012-04-02 18:17:08