如果为NULL,MySql显示'no',如果不为null,则显示'yes'

时间:2012-08-30 05:53:11

标签: mysql

SELECT IFNULL(Col,'b') FROM Table

检查Col并返回Col如果不为null,否则返回b。

如何检查Col,如果不为null,则返回'a';如果为null,则返回'b'。

我试过了:

SELECT IF(Col=NULL,'a','b') FROM Table

总是返回'b'。这是怎么做到的?

3 个答案:

答案 0 :(得分:6)

使用IS NULL检查列是否为空,而不是= NULL

每个值与NULL相比较,结果为NULL,因此您始终会获得b

SELECT IF(Col IS NULL,'a','b') FROM Table

答案 1 :(得分:0)

您可以使用与所有DBMS相同的ANSI SQL-92兼容CASE语句,而不是专有的IF语句。

SELECT CASE WHEN Col IS NULL THEN 'a' ELSE 'b' END AS Col
FROM   Table

您当前的声明无法按预期运行,因为您无法使用NULL符号比较=,而是必须使用IS NULL

您可能需要阅读Three Valued Logic

  

由于Null不是任何数据域的成员,因此不被视为a   “值”,而是表示缺席的标记(或占位符)   有价值的。因此,与Null的比较永远不会导致   无论是真还是假,但总是在第三个逻辑结果中,未知

答案 2 :(得分:0)

比较空值时,请使用IS代替=

SELECT IF(Col IS NULL,'a','b') 
FROM Table