SELECT IFNULL(Col,'b') FROM Table
如果不爲空,則返回Col如果不是null,則返回b。如果爲NULL,則爲'否',如果爲NULL,則爲'是'
如何檢查列,並返回'a'如果不爲空或'b'爲空。
我嘗試這樣做:
SELECT IF(Col=NULL,'a','b') FROM Table
它總是返回 'B'。這是如何完成的?
SELECT IFNULL(Col,'b') FROM Table
如果不爲空,則返回Col如果不是null,則返回b。如果爲NULL,則爲'否',如果爲NULL,則爲'是'
如何檢查列,並返回'a'如果不爲空或'b'爲空。
我嘗試這樣做:
SELECT IF(Col=NULL,'a','b') FROM Table
它總是返回 'B'。這是如何完成的?
使用IS NULL
檢查列是否爲空,而不是= NULL
。
每個值與NULL
比較的結果將是NULL
,所以你總是會得到b
。
SELECT IF(Col IS NULL,'a','b') FROM Table
您可以使用ANSI SQL-92兼容CASE
聲明至極的作品專有IF
語句而不是所有的DBMS。
SELECT CASE WHEN Col IS NULL THEN 'a' ELSE 'b' END AS Col
FROM Table
預期,因爲你不能使用=
跡象比較NULL
您當前的說法是不工作,你必須使用IS NULL
代替。
你可能想在Three Valued Logic
讀取以來null不是任何數據域的成員,它不被視爲一個 「價值」,而是一個標記(或佔位符)表明不存在價值爲 。正因爲如此,與空的比較永遠不能導致 無論是真或假,但總是在第三合乎邏輯的結果,未知
在比較空值使用IS
代替=
SELECT IF(Col IS NULL,'a','b')
FROM Table
請參見本手冊:http://dev.mysql.com/doc/refman/5.5/en/working-with-null.html – Omesh