MySQL 字符串拼接的 4 种方式总结
MySQL 中字符串拼接是经常使用的操作,针对不同的场景,有不同的拼接方式,本文总结了 MySQL 中常见的 4 种字符串拼接方式,并给出了使用示例。
1. 使用 CONCAT 函数拼接字符串
使用 CONCAT 函数可以将多个字符串连接成一个字符串,同时,也支持连接任意类型的值,如数字、日期等。
语法:
CONCAT(string1, string2, ... , stringN)
示例:
SELECT CONCAT('Hello', 'World'); -- 输出 HelloWorld
SELECT CONCAT('Age: ', age) AS info FROM students WHERE id = 1;
-- 输出 Age: 18
2. 用 CONCAT_WS 函数拼接字符串
CONCAT_WS 函数可以在字符串之间插入分隔符。它的第一个参数是分隔符,其后跟随的参数是要连接的字符串。
语法:
CONCAT_WS(separator, string1, string2, ... , stringN)
示例:
SELECT CONCAT_WS('-', '2021', '05', '20'); -- 输出 2021-05-20
SELECT CONCAT_WS(' ', last_name, first_name) AS full_name FROM employees WHERE emp_no = 10001;
-- 输出 Adams John
3. 使用 CONCAT 和 GROUP_CONCAT 函数拼接多行字符串
当需要将多行数据连接成一个字符串时,可以使用 CONCAT 和 GROUP_CONCAT 函数的组合。
语法:
SELECT CONCAT(GROUP_CONCAT(column1 SEPARATOR separator), 'addition string') FROM table_name WHERE condition;
示例:
SELECT CONCAT(GROUP_CONCAT(DISTINCT name separator ';'), ' is attending the meeting.') as attendees from employees;
-- 输出 John Adams;Mike Smith;Lucy Wang is attending the meeting.
4. 用 CONCAT 和 SUBSTRING_INDEX 函数拼接指定位置的字符串
当需要将字符串中指定位置的字符连接起来时,可以使用 CONCAT 和 SUBSTRING_INDEX 函数的组合。SUBSTRING_INDEX 函数返回一个字符串中第 n 个出现的分隔符之前或之后的子串。
语法:
SELECT CONCAT(SUBSTRING_INDEX(string, delimiter, count),...) FROM table_name WHERE condition;
示例:
SELECT CONCAT(SUBSTRING_INDEX('www.github.com', '.', 2), '/', 'repository') AS url;
-- 输出 www.github/repository
SELECT CONCAT(SUBSTRING_INDEX(name, ' ', 1), LEFT(SUBSTRING_INDEX(name, ' ', -2), 1), '.', SUBSTRING_INDEX(name, ' ', -1), '@company.com') AS email FROM employees WHERE emp_no = 10001;
-- 输出 j.hernandez@company.com
以上是 MySQL 字符串拼接的 4 种方式,根据不同的场景选择不同的方式可以让我们更加高效地完成字符串连接的任务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql字符串拼接的4种方式总结 - Python技术站