mysql IFNULL ELSE

mcg*_*ilm 44 mysql select ifnull

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

IFNULL(field_a,field_a,feild_b)
Run Code Online (Sandbox Code Playgroud)

这样它就检查字段a如果a为null,那么select将是字段b

那可能吗 ?

OMG*_*ies 90

使用COALESCE:

SELECT COALESCE(field_a, field_b)
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我也支持使用COALESCE. (5认同)
  • 如此清晰地解释了该函数的工作原理...谢谢!更新了断开的链接。 (2认同)

小智 53

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

select if(field_a is not null, field_a, field_b) from...
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案。允许做`Select if(name is not null, CONCAT('name is : ',name),'');` (2认同)

Mat*_*att 38

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

IFNULL(field_a,field_b)
Run Code Online (Sandbox Code Playgroud)

如果field_a不为null,则返回.否则field_b将被退回.

参考文献:IFNULL