在 MySQL 中連線兩列
本文將向你展示在 MySQL
中連線兩列資料的各種方法。通過從 MySQL
表中選擇欄位並在連線它們的值後將它們的值儲存到一個變數中,可以輕鬆地以程式設計方式完成此任務。
當你從資料庫表中選擇行時,可以通過連線值來簡化上述過程。
現在讓我們舉一個簡單的例子。如果你在資料庫中有兩個單獨的列作為名字和姓氏,並且希望將這兩列中的值顯示為單個字串全名,你可以使用兩種給定方法之一來完成你的任務。類似地,如果一個地址在資料庫中被拆分為多個列,並且你希望將其作為單個地址,包括你的應用程式中的城市、州和國家/地區,那麼 CONCAT
函式將非常有用。
可以使用兩種不同的函式來完成此任務。
- 使用
CONCAT
函式 - 使用
CONCAT_WS
函式
CONCAT()
和 CONCAT_WS()
函式都連線兩個或多個字串。這兩個函式不同,因為 CONCAT_WS()
函式與字串之間的分隔符一起工作,而 CONCAT()
函式不允許使用分隔符。這些函式之間的另一個顯著區別在於,如果任何引數為 NULL
,CONCAT()
函式將返回 NULL
值。相反,僅當分隔符為 NULL
時,CONCAT_WS()
函式才返回 NULL
值。
以下指令碼建立一個包含四列(sid
、firstname
、lastname
和 email
)的表 student
。
CREATE TABLE student (sid INT, firstname VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, email VARCHAR(55) NOT NULL);
在這裡,我們將樣本資料值插入
到學生表中以進行演示。
INSERT INTO student
VALUES (111,'Sim','Marlw','sim.marlw@gmail.com'),
(124,'John','Carl','John.carl@gmail.com'),
(362,'Paul','cohelo','paul.coh@google.com'),
(244,'Lunas','sen','Lonas.sen@max.com');
INSERT INTO student
VALUES (114,'Jaine','Kora','jaine.kora@abs.com'),
(615,'Roma','Sholy','roma.sh11@yahoo.com'),
(997,'Beaon','shrlon','beatrice.ss22@yahoo.com'),
(332,'Peter','cohelo','peter.coh@google.com');
下面給定的查詢返回學生表中的所有資料:
SELECT * FROM student order by sid;
使用 MySQL 中的 CONCAT
函式連線列
CONCAT
函式可以將多列中的值連線或合併為一列。CONCAT
函式的語法如下所示:
CONCAT(Column 1, column 2,......)
我們現在將看到如何將其與 SELECT
查詢一起使用:
SELECT sid, CONCAT(firstname, " ", lastname) AS fullname FROM student;
輸出將是:
select
查詢可用於在提示上顯示內容。在 MySQL 中使用 CONCAT_WS
函式連線列
CONCAT_WS
函式還可以將多列中的值連線或組合成單列。它有一個附加功能,可以新增分隔符以及列值或字串。該分隔符可以是逗號(,)、連字元(-)、下劃線(_)或任何靜態字串或模式。CONCAT_WS
函式的語法如下所示:
CONCAT_WS(SEPARATOR,Column 1, column 2,......)
我們現在將看到如何將其與 SELECT
查詢一起使用:
SELECT sid, CONCAT_WS( "_", firstname, lastname,"***" ) AS fullname FROM student;
輸出將是: