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

Jer*_*ry2 12 mysql

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

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

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

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

Mar*_*ers 16

使用IFNULL(b,a).

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

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