mySQL返回非空字段

时间:2010-01-25 06:16:56

标签: mysql

我有两个字段,但我想只返回非空字段。

select firstname, lastname, (if firstname != empty, then firstname else lastname) as name from users;

我如何做上面这样的事情。我不确定圆括号内应该是什么。我不想使用PHP后处理。

2 个答案:

答案 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;