You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何使用SET合并两个值?VARCHAR赋值合并异常咨询

问题解答

这不是MySQL的正常行为,而是你误用了字符串拼接的方式!

问题原因

在MySQL里,+是算术加法运算符,而非字符串连接符。当你尝试用"This is a test" + id时,MySQL会自动做类型转换:它会把字符串"This is a test"尝试转换成数值,但这个字符串无法解析为有效数字,所以会被当作0处理。最终运算结果就变成了0 + id,也就是id的值,文本部分自然就“消失”了。

正确的字符串拼接方式

有两种常用的正确方法可以实现字符串和数值的拼接:

  1. 使用CONCAT()函数(推荐,兼容性最好)
    这是MySQL中最通用的字符串拼接方式,不管版本都能正常工作:
DECLARE id INTEGER;
DECLARE action VARCHAR(100);
SET id = (SELECT MAX(ID) FROM Test.Test);
-- 可以在文本和id之间加空格让结果更美观
SET action = CONCAT("This is a test ", id);
  1. 使用||运算符(MySQL 8.0.19+适用)
    如果你的MySQL版本是8.0.19及以上,可以通过设置sql_mode开启PIPES_AS_CONCAT,让||作为字符串连接符使用:
-- 先设置SQL模式
SET sql_mode = PIPES_AS_CONCAT;
DECLARE id INTEGER;
DECLARE action VARCHAR(100);
SET id = (SELECT MAX(ID) FROM Test.Test);
SET action = "This is a test " || id;

内容的提问来源于stack exchange,提问作者Jeffrey Lionel van Houdt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:43:11