MariaDB CONCAT_WS() 函数的基础用法与实例
本文将介绍一个常用的字符串函数,CONCAT_WS()
,它用于连接多个字符串,并在每个字符串之间插入一个分隔符。
MariaDB 是一个开源的关系型数据库管理系统,它是 MySQL 的一个分支,兼容 MySQL 的语法和功能。MariaDB 提供了许多内置的函数,用于对数据进行各种操作和处理。本文将介绍一个常用的字符串函数,CONCAT_WS()
,它用于连接多个字符串,并在每个字符串之间插入一个分隔符。
语法
CONCAT_WS()
函数的语法如下:
CONCAT_WS(separator, str1, str2, ..., strN)
其中,separator
是要插入的分隔符,可以是一个常量,一个变量,或者一个表达式。str1, str2, ..., strN
是要连接的字符串,可以是任意类型的表达式,可以是常量,变量,列名,或者子查询等。参数的个数可以是任意多,但至少要有两个。如果 separator
或者任何一个字符串为 NULL
,则函数忽略该参数,不进行连接。
CONCAT_WS()
函数返回的是一个字符串,它是将 str1, str2, ..., strN
用 separator
连接起来的结果。如果所有的参数都为 NULL
,则函数返回 NULL
。如果没有任何字符串被连接,即只有 separator
一个参数,或者所有的字符串都为 NULL
,则函数返回一个空字符串 ''
。
CONCAT_WS()
函数的主要用途是方便地拼接多个字符串,并在每个字符串之间添加一个分隔符,例如,用逗号分隔多个列的值,或者用空格分隔多个单词等。CONCAT_WS()
函数与 CONCAT()
函数的区别是,CONCAT_WS()
函数可以指定一个分隔符,而 CONCAT()
函数没有分隔符;另外,CONCAT_WS()
函数会忽略 NULL
值,而 CONCAT()
函数会将 NULL
值视为 ''
。
实例
下面给出一些使用 CONCAT_WS()
函数的实例,以及相应的代码和输出结果。
用逗号分隔多个常量字符串
SELECT CONCAT_WS(',', 'Hello', 'world', '!');
+---------------------------------------+
| CONCAT_WS(',', 'Hello', 'world', '!') |
+---------------------------------------+
| Hello,world,! |
+---------------------------------------+
用空格分隔多个变量字符串
SET @name = 'MariaDB';
SET @version = '10.6.4';
SELECT CONCAT_WS(' ', @name, @version);
+---------------------------------+
| CONCAT_WS(' ', @name, @version) |
+---------------------------------+
| MariaDB 10.6.4 |
+---------------------------------+
用斜杠分隔多个列名的值
CREATE TABLE test (
id INT,
year INT,
month INT,
day INT
);
INSERT INTO test VALUES (1, 2021, 10, 1), (2, 2020, 12, 31);
SELECT id, CONCAT_WS('/', year, month, day) AS date FROM test;
+----+------------+
| id | date |
+----+------------+
| 1 | 2021/10/1 |
| 2 | 2020/12/31 |
+----+------------+
用换行符分隔多个表达式的值
SELECT CONCAT_WS('\n', 'Hello', UPPER('world'), '!');
+-----------------------------------------------+
| CONCAT_WS('\n', 'Hello', UPPER('world'), '!') |
+-----------------------------------------------+
| Hello
WORLD
! |
+-----------------------------------------------+
忽略 NULL
值的连接
SELECT CONCAT_WS(',', 'Hello', NULL, 'world', NULL, '!');
+---------------------------------------------------+
| CONCAT_WS(',', 'Hello', NULL, 'world', NULL, '!') |
+---------------------------------------------------+
| Hello,world,! |
+---------------------------------------------------+
相关函数
除了 CONCAT_WS()
函数外,MariaDB 还提供了一些其他的字符串函数,用于对字符串进行不同的操作和处理。下面列举了一些常用的字符串函数,并给出了简单的介绍和举例。
CONCAT()
函数:连接多个字符串,返回一个拼接后的字符串。LENGTH()
函数:返回一个字符串的长度,以字节为单位。SUBSTRING()
函数:从一个字符串中截取一部分子字符串,返回一个子字符串。REPLACE()
函数:用一个字符串替换一个字符串中的所有匹配的子字符串,返回一个替换后的字符串。UPPER()
函数:将一个字符串中的所有字母转换为大写,返回一个大写的字符串。
例如,下面的语句使用了 CONCAT()
函数和 REPLACE()
函数,将两个字符串连接起来,并用叹号替换逗号,返回一个新的字符串。
SELECT CONCAT('Hello', ', world', '!'), REPLACE(CONCAT('Hello', ', world', '!'), ',', '!');
+---------------------------------+----------------------------------------------------+
| CONCAT('Hello', ', world', '!') | REPLACE(CONCAT('Hello', ', world', '!'), ',', '!') |
+---------------------------------+----------------------------------------------------+
| Hello, world! | Hello! world! |
+---------------------------------+----------------------------------------------------+
结论
本文介绍了 MariaDB 的一个常用的字符串函数,CONCAT_WS()
,它用于连接多个字符串,并在每个字符串之间插入一个分隔符。本文还介绍了函数的语法,给出了一些实例,以及列举了一些相关的函数。