mysql IFNULL ELSE

时间:2010-07-09 18:21:58

标签: mysql select ifnull

我有一个select语句,我想像这样选择条件

IFNULL(field_a,field_a,feild_b)

以便它检查字段a如果a为null,则select将是字段b

可能吗?

4 个答案:

答案 0 :(得分:84)

使用COALESCE

SELECT COALESCE(field_a, field_b)

COALESCE是ANSI标准函数,它从指定的列列表中返回第一个非空值,从左到右处理列。因此,在示例中,如果field_a为null,则将显示field_b值。但是,如果指定的列中没有非空值,则此函数将返回NULL。

它支持MySQL(我在4.1上使用过它),SQL Server(自v2000起),Oracle 9i + ......

答案 1 :(得分:45)

和皮肤那种猫的另一种方式(灵活的不仅仅是空比较)......

select if(field_a is not null, field_a, field_b) from...

答案 2 :(得分:37)

是的,但这只是两个参数:

IFNULL(field_a,field_b)

如果field_a不为null,则返回。否则将返回field_b

参考:IFNULL

答案 3 :(得分:0)

For more examples

带有语法和示例的MySQL IFNULL()

语法

IFNULL函数的语法为:

IFNULL(expression_1,expression_2);

examples

   SELECT 
     name, IFNULL(businessphone, homephone) phone
 FROM
     users;



       #The above query return this result from users table

   +------------+-----------+----------+-----------
   | id        | name           | phone          |
   +------------+-----------+----------+-----------
   | 5         | Tommy Hill     | (541) 754-3009 |
   | 6         | John Smith     | (541) 754-3110 | 
   | 10        | Mark Greenspan | (541) 754-3111 | 
   | 11        | Kelvin Row     | (541) 754-3111 |
   +------------+-----------+----------+-----------