2
我有两个字段,但我只想返回非空字段。mySQL返回不空字段
select firstname, lastname, (if firstname != empty, then firstname else lastname) as name from users;
我该如何去做类似上面的事情。我不确定圆括号里面应该是什么。我不想使用PHP后期处理。
我有两个字段,但我只想返回非空字段。mySQL返回不空字段
select firstname, lastname, (if firstname != empty, then firstname else lastname) as name from users;
我该如何去做类似上面的事情。我不确定圆括号里面应该是什么。我不想使用PHP后期处理。
这既适用于null
值以及空字符串(''
)
SELECT IF(LENGTH(firstname), firstname, lastname) as name from users;
有几种方法可以在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;
你的回答也是完美的。我希望我能接受这两个。抱歉! – 2010-01-25 06:44:11
@Alec Smart:没关系。重要的是你的问题得到了正确的答案。 – Asaph 2010-01-25 06:45:51