首页 > 解决方案 > 在 MySql 中使用 if 语句打印带有条件约束的新列

问题描述

我有一个表'actor',其字段是'pk','fname',lname。我想打印一个列(让我们调用这个名称),默认情况下打印 fname 但如果 fname 为空,则打印 lname。

我使用的查询是:

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

然而,这并没有实现给定的任务。即使值为空,它也会打印 fname。

标签: mysqlsqldatabaseif-statement

解决方案


要与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;

推荐阅读