1. 程式人生 > >mysql之concat和ifnull

mysql之concat和ifnull

mysql CONCAT()函式用於將多個字串連線成一個字串,是最重要的mysql函式之一,下面就將為您詳細介紹mysql CONCAT()函式,供您參考

mysql CONCAT(str1,str2,…)                        
返回結果為連線引數產生的字串。如有任何一個引數為NULL ,則返回值為 NULL。或許有一個或多個引數。 如果所有引數均為非二進位制字串,則結果為非二進位制字串。 如果自變數中含有任一二進位制字串,則結果為一個二進位制字串。一個數字引數被轉化為與之相等的二進位制字串格式;若要避免這種情況,可使用顯式型別 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

MySQL IFNULL函式是MySQL控制流函式之一,它接受兩個引數,如果不是NULL,則返回第一個引數。 否則,IFNULL函式返回第二個引數。

兩個引數可以是文字值或表示式。

IFNULL(expression_1,expression_2);

如果expression_1不為NULL,則IFNULL函式返回expression_1; 否則返回expression_2的結果。

IFNULL函式根據使用的上下文返回字串或數字。

SELECT id, CONCAT(IFNULL(name,''),'/',internal_id) AS name, category_type as channel_type, is_group_purchase as is_group from product_categories

 

mysql CONCAT_WS(separator,str1,str2,…) 
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一個引數是其它引數的分隔符。分隔符的位置放在要連線的兩個字串之間。分隔符可以是一個字串,也可以是其它引數。如果分隔符為 NULL,則結果為 NULL。函式會忽略任何分隔符引數後的 NULL 值。

mysql> SELECT CONCAT_WS(’,',’First name’,'Second name’,'Last Name’);

-> ‘First name,Second name,Last Name’

mysql> SELECT CONCAT_WS(’,',’First name’,NULL,’Last Name’);

-> ‘First name,Last Name’

mysql CONCAT_WS()不會忽略任何空字串。 (然而會忽略所有的 NULL)