在 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;
输出将是: