我在mysql表中有两列:a和b。 a是allways字符串值,b有时是字符串值,有时它是null。
如何构造一个mysql SELECT,以便在不为null时采用b,否则采用b。
我尝试用concat制作一些魔法,如果......然后没有成功......
更新 - 为了扩展我的问题,是否有一个函数可以像Ifnull一样工作,但是可以用于null和空值吗?
答案 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。