[英]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。
您可以使用支票if
在mysql
,如果任何一個值,為空返回''
其他的實際值
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_name
與f_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.