在mysql中使用if语句打印带有条件约束的新列

tyu7yeag  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(247)

我有一个表'actor',它的字段是'pk','fname',lname。我想打印一列(我们称之为这个名称),默认情况下打印fname,但如果fname为null,则打印lname。
我使用的查询是:

select if(fname = null,lname,fname) as name from actor;

然而,这并不能完成给定的任务。即使值为空,它也打印fname。

vuv7lop3

vuv7lop31#

比较 NULL 需要使用的值 IS NULL :

select if(fname IS NULL,lname,fname) as name from actor;

或者 <=> :

select if(fname <=> null,lname,fname) as name from actor;

在您的示例中,最简单的方法是使用 COALESCE :

SELECT COALESCE(fname, lname) AS name FROM actor;

相关问题