簡體   English   中英

與CONCAT()mysql有關的問題?

[英]Issue with CONCAT() mysql?

我有一個table ,我正在運行一個query並從表中獲取這樣的全名

SELECT CONCAT(f_name ,  " - ",  l_name )  as fullname FROM  user

可以,但是當我在l_name中沒有值時,默認情況下該值為null

它沒有給出f_name而是給了我NULL

您可以使用CONCAT_WS:

SELECT CONCAT_WS(' - ', f_name,  l_name)  as fullname FROM  user

如果值為null,則concat將返回null,concat_ws將僅跳過null值。

是的,如果任何變量為null,則返回null。

您可以使用支票ifmysql ,如果任何一個值,為空返回''其他的實際值

 SELECT CONCAT(if(f_name is null,'',f_name ) , 
   if(f_name is not null and l_name is not null, " - ",""), 
   if(l_name is null,'',l_name ) )  
 as fullname FROM  user

你需要檢查,以滿足-在您的查詢。 僅當所有值都不為null它才應該出現。

使用CASE表達式。
檢查l_name列是否為null且僅包含空格。
如果是這樣避免增加-性格和l_name沿f_name
否則,添加-l_namef_name

詢問

select concat(f_name,(
    case when l_name is null or length(trim(l_name)) = 0 then '' 
    else concat('-', l_name) end)
) as fullname
from user;

嘗試這個

SELECT concat(f_name ,  if(l_name is null,'',concat("-", l_name) ) ) fullname 
FROM  user

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM