CONCAT函数用于拼接字符串,若任一参数为NULL则结果为NULL;而CONCAT_WS可指定分隔符且自动跳过NULL值,更适合处理不确定数据。
MySQL中的
CONCAT
CONCAT
CONCAT(string1, string2, ..., stringN)
SELECT CONCAT('Hello', ' ', 'World');
这里有个需要特别留心的地方,也是我个人在使用中经常会遇到的“坑”:如果
CONCAT
NULL
NULL
NULL
这是个特别好的问题,因为在实际开发中,我发现很多人会在这两个函数之间摇摆,甚至混淆。简单来说,
CONCAT
CONCAT_WS
NULL
CONCAT_WS
CONCAT_WS(separator, string1, string2, ..., stringN)
separator
separator
NULL
string
NULL
CONCAT_WS
NULL
比如说,你有一个
first_name
middle_name
last_name
middle_name
CONCAT
CONCAT(first_name, ' ', middle_name, ' ', last_name)
middle_name
NULL
NULL
CONCAT_WS
CONCAT_WS(' ', first_name, middle_name, last_name)
middle_name
NULL
first_name
last_name
NULL
CONCAT_WS
CONCAT
举个例子,如果你有一个数字字段
price
SELECT CONCAT('$', price) FROM products;
price
19.99
日期类型也是类似的。如果你想显示今天的日期,前面加上一段文字,可以这样:
SELECT CONCAT('Today is: ', CURDATE());
CURDATE()
不过,尽管这种隐式转换很方便,但有时候你可能需要更精确地控制数字的格式(比如小数位数)或者日期的显示格式。在这种情况下,我通常会建议配合使用
FORMAT()
DATE_FORMAT()
CONCAT('Today is: ', CURDATE())
CONCAT('Today is: ', DATE_FORMAT(CURDATE(), '%d %M, %Y'));
CONCAT
构建完整的地址或名称:这大概是最经典的用例了。比如从
street_number
street_name
city
state
zip_code
first_name
last_name
CONCAT_WS
-- 拼接地址 SELECT CONCAT_WS(', ', street_number, street_name, city, state, zip_code) AS full_address FROM customers; -- 拼接全名 SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
生成动态的报告或日志信息:当需要从数据库中提取数据,并以特定格式展示给用户,或者记录到日志中时,
CONCAT
SELECT CONCAT('订单ID: ', order_id, ',金额: $', total_amount, ',状态: ', status) AS order_summary FROM orders WHERE order_id = 12345;
构造URL或文件路径:在某些场景下,你可能需要根据数据库中的信息动态生成一个完整的URL或者文件路径。比如,图片存储的基路径加上图片的文件名。
SELECT CONCAT('https://example.com/images/', product_id, '/', image_name) AS image_url FROM products;
在WHERE
CONCAT
LIKE
first_name
last_name
-- 不推荐在大型表上频繁使用 SELECT * FROM users WHERE CONCAT(first_name, ' ', last_name) LIKE '%John Doe%';
我必须强调,在
WHERE
CONCAT
LIKE
CONCAT
以上就是mysql中concat函数如何使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号