在 MySQL 中连接两列

Sweety Rupani 2023年1月30日 2022年5月14日
  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