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