使用CONCAT()函数可拼接字符串字段,如select CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM users;若字段可能为NULL,推荐使用CONCAT_WS()或IFNULL()避免结果为NULL,例如CONCAT_WS(‘ ‘, first_name, last_name)会自动跳过NULL值,而CONCAT(IFNULL(first_name, ”), ‘ ‘, IFNULL(last_name, ”))可将NULL替换为空字符串;此外,可结合常量生成提示信息,如SELECT CONCAT(‘用户:’, name, ‘ 的邮箱是 ‘, email) AS info FROM users。

在 mysql 中拼接字符串字段,最常用的方法是使用 CONCAT() 函数。它可以把两个或多个字符串字段(或常量)连接成一个字符串。
使用 CONCAT() 拼接字段
假设有一张用户表 users,包含 first_name 和 last_name 两个字段,你想将它们拼接为完整的姓名:
示例:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM users;
这里用空格 `’ ‘` 作为分隔符,连接姓和名。
处理可能的 NULL 值
如果任意一个字段是 NULL,CONCAT() 的结果也会变成 NULL。为了避免这个问题,可以使用 CONCAT_WS() 或 IFNULL()。
- CONCAT_WS():表示“带分隔符的拼接”,第一个参数是分隔符,后面的参数是字段。它会自动跳过 NULL 值。
- 示例: SELECT CONCAT_WS(‘ ‘, first_name, last_name) AS full_name FROM users; 即使其中一个字段为 NULL,另一个仍会被保留。
- 也可以用 IFNULL() 替换 NULL 为空字符串:CONCAT(IFNULL(first_name, ”), ‘ ‘, IFNULL(last_name, ”))
拼接字符串与常量
你可以把字段和固定文本一起拼接,比如生成提示信息:
SELECT CONCAT(‘用户:’, name, ‘ 的邮箱是 ‘, email) AS info FROM users;
基本上就这些。根据是否可能有 NULL 值,选择 CONCAT() 或 CONCAT_WS() 更稳妥。不复杂但容易忽略细节。


