CONCAT
是 MySQL 中的一个字符串函数,用于将两个或多个字符串连接成一个字符串。它接受两个或多个参数,并将它们按顺序连接起来。
CONCAT(str1, str2, ..., strN)
+
或 ||
运算符,CONCAT
函数更加直观和简洁。CONCAT
函数在连接时会自动忽略 NULL 值,而不会返回 NULL。CONCAT
函数可以处理各种类型的字符串,包括普通字符串、数字(会被转换为字符串)、日期等。
SELECT
语句中动态生成字符串。假设有一个 users
表,包含 first_name
和 last_name
两个字段:
CREATE TABLE users (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
);
INSERT INTO users (id, first_name, last_name) VALUES
(1, 'John', 'Doe'),
(2, 'Jane', 'Smith');
使用 CONCAT
函数将 first_name
和 last_name
连接成一个全名:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
输出:
+-------------+
| full_name |
+-------------+
| John Doe |
| Jane Smith |
+-------------+
CONCAT
函数在连接时忽略了 NULL 值?原因:CONCAT
函数在连接字符串时,如果遇到 NULL 值,会自动忽略它,而不是返回 NULL。这是 CONCAT
函数的设计特性。
解决方法:如果需要保留 NULL 值,可以使用 CONCAT_WS
函数(CONCAT With Separator),它允许指定一个分隔符,并且不会忽略 NULL 值。
SELECT CONCAT_WS(' ', first_name, last_name) AS full_name FROM users;
这样即使某个字段为 NULL,也会在结果中显示为空字符串。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云