我有两个字段,但我想只返回非空字段。
select firstname, lastname, (if firstname != empty, then firstname else lastname) as name from users;
我如何做上面这样的事情。我不确定圆括号内应该是什么。我不想使用PHP后处理。
答案 0 :(得分:6)
在MySQL中有几种方法可以做到这一点。
您可以使用coalesce()函数在其参数中返回第一个非空值。
select coalesce(firstname, lastname) as name from users;
或者,您可以使用case statement:
select case when firstname is not null then firstname else lastname end as name from users;
或者您可以使用if()功能:
select if(firstname is not null, firstname, lastname) as name from users;
或者您可以使用ifnull()功能:
select ifnull(firstname, lastname) as name from users;
答案 1 :(得分:3)
这适用于null
值和空字符串(''
)
SELECT IF(LENGTH(firstname), firstname, lastname) as name from users;