如果不为null,则选择列值,否则使用其他列值

时间:2010-10-17 07:31:03

标签: mysql

我在mysql表中有两列:a和b。 a是allways字符串值,b有时是字符串值,有时它是null。

如何构造一个mysql SELECT,以便在不为null时采用b,否则采用b。

我尝试用concat制作一些魔法,如果......然后没有成功......

更新 - 为了扩展我的问题,是否有一个函数可以像Ifnull一样工作,但是可以用于null和空值吗?

3 个答案:

答案 0 :(得分:15)

使用IFNULL(b, a)

  

如果expr1不为NULL,则IFNULL()返回expr1;否则它返回expr2。

这是MySQL特有的功能。您也可以以相同的方式使用COALESCE。这将适用于更多的数据库,但它在MySQL中的性能略差于IFNULL。

答案 1 :(得分:2)

答案 2 :(得分:2)

IF(expr1,expr2,expr3)

如果expr1为TRUE(expr1<> 0且expr1<> NULL),则IF()返回expr2;否则返回expr3。