MySQL CONCAT() 函式



MySQL 的CONCAT() 函式用於將兩個或多個字串連線成一個字串。

它接受兩個或多個字串值作為輸入,並透過按提供的順序連線所有輸入字串來返回一個字串。

  • 如果我們提供非二進位制字串作為輸入,它將返回非二進位制字串作為輸出。

  • 如果我們提供二進位制字串作為輸入,它將返回二進位制字串作為輸出。

  • 如果我們提供數值作為輸入,則將其轉換為等效的非二進位制字串形式。

在處理 MySQL 表時,此函式在各種場景中都很有用,例如將一個人的名字和姓氏組合成全名,將字串與分隔符(如“ ”、“-”、“(”等)連線起來。

語法

以下是 MySQL CONCAT() 函式的語法:

CONCAT(str1,str2,...)

引數

此函式接受多個字串值作為引數。

返回值

此函式返回給定字串值的連線結果,將它們組合成一個字串。

示例

在此示例中,我們使用 CONCAT() 函式連線兩個字串“tutorials”和“point”:

SELECT CONCAT('tutorials', 'point');

以下是上述程式碼的輸出:

CONCAT('tutorials', 'point')
tutorialspoint

示例

以下是一個其他示例,其中我們只向 CONCAT() 函式傳遞一個引數:

SELECT CONCAT('test');

上述程式碼的輸出如下所示:

CONCAT('test')
test

示例

您也可以透過傳遞兩個以上引數來連線:

SELECT CONCAT('Shyam', 'Singa', 'Roy');

獲得的輸出如下所示:

CONCAT('Shyam', 'Singa', 'Roy')
ShyamSingaRoy

示例

如果將二進位制字串作為引數傳遞給此函式,它將返回一個二進位制字串:

SELECT CONCAT('110110', '1100110');

產生的結果如下:

CONCAT('110110', '1100110')
1101101100110

示例

同樣,如果將非二進位制值作為引數傳遞,它將返回一個非二進位制字串:

SELECT CONCAT('sample', 'test');

我們得到如下輸出:

CONCAT('sample', 'test')
sampletest

示例

您還可以組合二進位制和非二進位制值,並將其作為引數傳遞給此函式:

SELECT CONCAT('sample', 1010011);

獲得的輸出如下所示:

CONCAT('sample', 1010011)
sample1010011

示例

當您將數值作為引數傳遞時,CONCAT() 函式會將其轉換為等效的非二進位制字串形式:

SELECT CONCAT(1125, 225, 669);

產生的結果如下:

CONCAT(1125, 225, 669)
1125225669

示例

如果將空字串作為引數傳遞給 CONCAT() 函式,它將返回“0”:

SELECT CONCAT('');

我們得到如下輸出:

CONCAT('')
0

示例

如果傳遞給 CONCAT() 函式的引數之一為 NULL,則結果也將為 NULL:

SELECT CONCAT(1125, 225, NULL);

以下是上述程式碼的輸出:

CONCAT(1125, 225, NULL)
NULL

示例

您還可以將表的列名作為引數傳遞給此函式,並連線/組合給定列中的值。

讓我們建立一個名為“PLAYERS”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE PLAYERS(
   ID INT,
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Date_Of_Birth date,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO PLAYERS VALUES
(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'),
(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica'),
(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka'),
(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India'),
(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'),
(6, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');

獲得的 PLAYERS 表如下所示:

ID First_Name Last_Name Date_Of_Birth Place_Of_Birth Country
1 Shikhar Dhawan 1981-12-05 Delhi India
2 Jonathan Trott 1981-04-22 CapeTown SouthAfrica
3 Kumara Sangakkara 1977-10-27 Matale Srilanka
4 Virat Kohli 1988-11-05 Delhi India
5 Rohit Sharma 1987-04-30 Nagpur India
6 James Anderson 1982-06-30 Burnley England

以下查詢連線/組合 PLAYERS 表的 First_Name 和 Last_Name 值,並將結果顯示為 FullName:

SELECT CONCAT (First_Name, Last_Name) as FullName, Country 
FROM PLAYERS;

輸出

執行上述程式碼後,我們將獲得以下輸出:

FullName Country
ShikharDhawan India
JonathanTrott SouthAfrica
KumaraSangakkara Srilanka
ViratKohli India
RohitSharma India
JamesAnderson England

示例

在這裡,我們使用以下查詢連線兩個以上的列,即“First_name”、“Last_name”和“Country”:

SELECT CONCAT (First_Name, " ", Last_Name, " ", Country) as FullName_and_Country
FROM PLAYERS;

輸出

顯示的輸出如下所示:

FullName_and_Country
Shikhar Dhawan India
Jonathan Trott SouthAfrica
Kumara Sangakkara Srilanka
Virat Kohli India
Rohit Sharma India
James Anderson England
mysql-concat-function.htm
廣告