在 MySQL 中連線兩列

Sweety Rupani 2024年2月15日
  1. 使用 MySQL 中的 CONCAT 函式連線列
  2. 在 MySQL 中使用 CONCAT_WS 函式連線列
在 MySQL 中連線兩列

本文將向你展示在 MySQL 中連線兩列資料的各種方法。通過從 MySQL 表中選擇欄位並在連線它們的值後將它們的值儲存到一個變數中,可以輕鬆地以程式設計方式完成此任務。

當你從資料庫表中選擇行時,可以通過連線值來簡化上述過程。

現在讓我們舉一個簡單的例子。如果你在資料庫中有兩個單獨的列作為名字和姓氏,並且希望將這兩列中的值顯示為單個字串全名,你可以使用兩種給定方法之一來完成你的任務。類似地,如果一個地址在資料庫中被拆分為多個列,並且你希望將其作為單個地址,包括你的應用程式中的城市、州和國家/地區,那麼 CONCAT 函式將非常有用。

可以使用兩種不同的函式來完成此任務。

  1. 使用 CONCAT 函式
  2. 使用 CONCAT_WS 函式

CONCAT()CONCAT_WS() 函式都連線兩個或多個字串。這兩個函式不同,因為 CONCAT_WS() 函式與字串之間的分隔符一起工作,而 CONCAT() 函式不允許使用分隔符。這些函式之間的另一個顯著區別在於,如果任何引數為 NULLCONCAT() 函式將返回 NULL 值。相反,僅當分隔符為 NULL 時,CONCAT_WS() 函式才返回 NULL 值。

以下指令碼建立一個包含四列(sidfirstnamelastnameemail)的表 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 中連線兩列 - 示例

使用 MySQL 中的 CONCAT 函式連線列

CONCAT 函式可以將多列中的值連線或合併為一列。CONCAT 函式的語法如下所示:

CONCAT(Column 1, column 2,......)

我們現在將看到如何將其與 SELECT 查詢一起使用:

SELECT sid, CONCAT(firstname, " ", lastname) AS fullname FROM student;

輸出將是:

在 mysql 中連線兩列 - 使用 concat

注意
原表未更新。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;

輸出將是:

連線 mysql 中的兩列 - 使用 concat_ws