首頁 > 軟體

Mysql中的concat函數(拼接函數)詳解

2023-11-02 06:00:39

Mysql中的concat函數(拼接函數)

概述

很多時候,我們需要將不同地方獲得的字串拼接在一起,此時就需要使用CONCATCONCAT_WS函數

要連線兩個或多個參照的字串值,請將字串放在一起,如下所示:

mysql> SELECT 'MySQL ' 'String ' 'Concatenation';
+----------------------------+
| MySQL                      |
+----------------------------+
| MySQL String Concatenation |
+----------------------------+
1 row in set

除了使用空格進行字串連線之外,mysql還提供了兩個連線字串值的函數CONCATCONCAT_WS

Mysql Concat函數

Mysql Concat函數需要一個或多個字串引數,並將他們連線成一個字串。CONCAT() 函數需要至少一個引數,否則會引起報錯。

CONCAT(string1,string2, ... );

CONCAT()函數在連線之前將所有引數轉換為字串型別。如果任何引數為NULL,則CONCAT()函數返回NULL值。

mysql> SELECT CONCAT('MySQL','CONCAT');
+--------------------------+
| CONCAT('MySQL','CONCAT') |
+--------------------------+
| MySQLCONCAT              |
+--------------------------+
1 row in set

如果是新增NULL值,則CONCAT函數將會返回一個NULL值;

mysql> SELECT CONCAT('MySQL',NULL,'CONCAT');
+-------------------------------+
| CONCAT('MySQL',NULL,'CONCAT') |
+-------------------------------+
| NULL                          |
+-------------------------------+
1 row in set

Mysql Concat_Ws函數

MySQL提供了一種特殊形式的CONCAT()函數:CONCAT_WS()函數。CONCAT_WS()函數將兩個或多個字串值與預定義的分隔符相連線。

下面說明了CONCAT_WS()函數的語法:

CONCAT_WS(seperator,string1,string2, ... );

第一個引數是其他引數:string1string2...的分隔符。

CONCAT_WS函數在字串引數之間新增分隔符,並返回單個字串,並在字串引數之間插入分隔符。

以下語句連線兩個字串值:MaxSu,並用逗號分隔這兩個字串:

SELECT CONCAT_WS(',','Max','Su');
SQL

執行上面查詢語句,得到以下結果 -

mysql> SELECT CONCAT_WS(',','Max','Su');
+---------------------------+
| CONCAT_WS(',','Max','Su') |
+---------------------------+
| Max,Su                    |
+---------------------------+
1 row in set
Shell

當且僅當作為分隔符的第一個引數為NULL時,CONCAT_WS函數才返回NULL

mysql> SELECT CONCAT_WS(NULL ,'Jonathan', 'Minsu');
+--------------------------------------+
| CONCAT_WS(NULL ,'Jonathan', 'Minsu') |
+--------------------------------------+
| NULL                                 |
+--------------------------------------+
1 row in set

CONCAT函數不同,CONCAT_WS函數在分隔符引數之後跳過NULL值。 換句話說,它忽略NULL

mysql> SELECT CONCAT_WS(',','Jonathan', 'Minsu',NULL);
+-----------------------------------------+
| CONCAT_WS(',','Jonathan', 'Minsu',NULL) |
+-----------------------------------------+
| Jonathan,Minsu                          |
+-----------------------------------------+
1 row in set

以下語句使用CONCAT_WS函數構造完整的地址:

 SELECT 
    CONCAT_WS(CHAR(13),
            CONCAT_WS(' ', contactLastname, contactFirstname),
            addressLine1,
            addressLine2,
            CONCAT_WS(' ', postalCode, city),
            country,
            CONCAT_WS(CHAR(13), '')) AS Customer_Address
FROM
    customers;
SQL

執行上面查詢語句,得到以下結果 -

+----------------------------------------------------------------------------------+
| Customer_Address                                                                 |
+----------------------------------------------------------------------------------+
| Schmitt Carine 
54, rue Royale
44000 Nantes
France |
************ 此處省略一大波資料 *******

到此這篇關於Mysql中的concat函數(拼接函數)的文章就介紹到這了,更多相關Mysql concat函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com