MySQL concat()函数
轉(zhuǎn)載自? ?MySQL concat()函數(shù)
在本教程中,您將學(xué)習(xí)使用MySQL?CONCAT和CONCAT_WS函數(shù)將兩個(gè)或多個(gè)字符串連接在一起的各種方法。
要連接兩個(gè)或多個(gè)引用的字符串值,請(qǐng)將字符串放在一起,如下所示:
SELECT 'MySQL ' 'String ' 'Concatenation';執(zhí)行上面查詢(xún)語(yǔ)句,得到以下結(jié)果 -
mysql> SELECT 'MySQL ' 'String ' 'Concatenation'; +----------------------------+ | MySQL | +----------------------------+ | MySQL String Concatenation | +----------------------------+ 1 row in set與其他數(shù)據(jù)庫(kù)管理系統(tǒng)相比,MySQL字符串連接更為清晰。 例如,如果您使用PostgreSQL或Oracle,則必須使用字符串連接運(yùn)算符||。 在Microsoft SQL Server中,您可以使用加法算術(shù)運(yùn)算符(+)連接字符串值。
除了使用空格進(jìn)行字符串連接之外,MySQL還提供了兩個(gè)連接字符串值的函數(shù):CONCAT和CONCAT_WS。
MySQL CONCAT函數(shù)
MySQL?CONCAT()函數(shù)需要一個(gè)或多個(gè)字符串參數(shù),并將它們連接成一個(gè)字符串。CONCAT()函數(shù)需要至少一個(gè)參數(shù),否則會(huì)引起錯(cuò)誤。
下面說(shuō)明了CONCAT()函數(shù)的語(yǔ)法。
CONCAT(string1,string2, ... );CONCAT()函數(shù)在連接之前將所有參數(shù)轉(zhuǎn)換為字符串類(lèi)型。如果任何參數(shù)為NULL,則CONCAT()函數(shù)返回NULL值。
以下語(yǔ)句連接兩個(gè)引用的字符串:MySQL和CONCAT。
SELECT CONCAT('MySQL','CONCAT');執(zhí)行上面查詢(xún)語(yǔ)句,得到以下結(jié)果 -
mysql> SELECT CONCAT('MySQL','CONCAT'); +--------------------------+ | CONCAT('MySQL','CONCAT') | +--------------------------+ | MySQLCONCAT | +--------------------------+ 1 row in set如果添加NULL值,則CONCAT函數(shù)將返回一個(gè)NULL值,如下所示:
mysql> SELECT CONCAT('MySQL',NULL,'CONCAT'); +-------------------------------+ | CONCAT('MySQL',NULL,'CONCAT') | +-------------------------------+ | NULL | +-------------------------------+ 1 row in set請(qǐng)參見(jiàn)示例數(shù)據(jù)庫(kù)(yiibaidb)中的customers表,其結(jié)構(gòu)如下所示 -
mysql> desc customers; +------------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+---------------+------+-----+---------+-------+ | customerNumber | int(11) | NO | PRI | NULL | | | customerName | varchar(50) | NO | | NULL | | | contactLastName | varchar(50) | NO | | NULL | | | contactFirstName | varchar(50) | NO | | NULL | | | phone | varchar(50) | NO | | NULL | | | addressLine1 | varchar(50) | NO | | NULL | | | addressLine2 | varchar(50) | YES | | NULL | | | city | varchar(50) | NO | | NULL | | | state | varchar(50) | YES | | NULL | | | postalCode | varchar(15) | YES | | NULL | | | country | varchar(50) | NO | | NULL | | | salesRepEmployeeNumber | int(11) | YES | MUL | NULL | | | creditLimit | decimal(10,2) | YES | | NULL | | +------------------------+---------------+------+-----+---------+-------+ 13 rows in set要獲取聯(lián)系人的全名,您可以使用CONCAT函數(shù)將名字,空格,姓氏連接,如下查詢(xún)語(yǔ)句:
SELECT concat(contactFirstName,' ',contactLastName) Fullname FROMcustomers;執(zhí)行上面查詢(xún)語(yǔ)句,得到以下結(jié)果 -
mysql> SELECT concat(contactFirstName,' ',contactLastName) Fullname FROMcustomers; +--------------------------+ | Fullname | +--------------------------+ | Carine Schmitt | | Jean King | | Peter Ferguson | | Janine Labrune | | Jonas Bergulfsen | ***** 此處省略了一大波數(shù)據(jù) **** | Sue Taylor | | Thomas Minsu | | Valarie Franco | | Tony Snowden | +--------------------------+ 122 rows in set?
MySQL CONCAT_WS函數(shù):使用分隔符連接字符串
MySQL提供了一種特殊形式的CONCAT()函數(shù):CONCAT_WS()函數(shù)。CONCAT_WS()函數(shù)將兩個(gè)或多個(gè)字符串值與預(yù)定義的分隔符相連接。
下面說(shuō)明了CONCAT_WS()函數(shù)的語(yǔ)法:
CONCAT_WS(seperator,string1,string2, ... );第一個(gè)參數(shù)是其他參數(shù):string1,string2,...的分隔符。
CONCAT_WS函數(shù)在字符串參數(shù)之間添加分隔符,并返回單個(gè)字符串,并在字符串參數(shù)之間插入分隔符。
以下語(yǔ)句連接兩個(gè)字符串值:Max和Su,并用逗號(hào)分隔這兩個(gè)字符串:
SELECT CONCAT_WS(',','Max','Su');執(zhí)行上面查詢(xún)語(yǔ)句,得到以下結(jié)果 -
mysql> SELECT CONCAT_WS(',','Max','Su'); +---------------------------+ | CONCAT_WS(',','Max','Su') | +---------------------------+ | Max,Su | +---------------------------+ 1 row in set當(dāng)且僅當(dāng)作為分隔符的第一個(gè)參數(shù)為NULL時(shí),CONCAT_WS函數(shù)才返回NULL。請(qǐng)參閱以下示例:
mysql> SELECT CONCAT_WS(NULL ,'Jonathan', 'Minsu'); +--------------------------------------+ | CONCAT_WS(NULL ,'Jonathan', 'Minsu') | +--------------------------------------+ | NULL | +--------------------------------------+ 1 row in set與CONCAT函數(shù)不同,CONCAT_WS函數(shù)在分隔符參數(shù)之后跳過(guò)NULL值。 換句話(huà)說(shuō),它忽略NULL值。
mysql> SELECT CONCAT_WS(',','Jonathan', 'Minsu',NULL); +-----------------------------------------+ | CONCAT_WS(',','Jonathan', 'Minsu',NULL) | +-----------------------------------------+ | Jonathan,Minsu | +-----------------------------------------+ 1 row in set以下語(yǔ)句使用CONCAT_WS函數(shù)構(gòu)造完整的地址:
SELECT CONCAT_WS(CHAR(13),CONCAT_WS(' ', contactLastname, contactFirstname),addressLine1,addressLine2,CONCAT_WS(' ', postalCode, city),country,CONCAT_WS(CHAR(13), '')) AS Customer_Address FROMcustomers;執(zhí)行上面查詢(xún)語(yǔ)句,得到以下結(jié)果 -
+----------------------------------------------------------------------------------+ | Customer_Address | +----------------------------------------------------------------------------------+ | Schmitt Carine 54, rue Royale 44000 Nantes France | ************ 此處省略一大波數(shù)據(jù) *******在本教程中,您已經(jīng)學(xué)習(xí)了如何使用MySQL?CONCAT和CONCAT_WS函數(shù)將一個(gè)或多個(gè)字符串值連接到成單個(gè)字符串。
總結(jié)
以上是生活随笔為你收集整理的MySQL concat()函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 游戏主机与电脑配置要求(游戏主机与电脑配
- 下一篇: MySQL字符串长度