XAMPP本地MariaDB环境下整数与字符串拼接失败问题排查
MariaDB字符串与整数拼接问题解决
嘿,我来帮你搞定这个拼接问题!
你遇到的问题核心在于MariaDB里的+运算符是算术加法,不是字符串拼接。当你执行'id:' + cast(Cid as varchar)时,数据库会尝试把字符串'id:'转换为数字——显然这个字符串无法转成有效数字,所以会被当作0处理,然后和3747相加,最终得到的结果就是3747,而不是你预期的id:3747。
另外提个小细节:SQL里判断字段等于某个值,标准写法是用=而不是is(is一般用来判断NULL或者布尔值),虽然MariaDB可能兼容,但建议改成Cid = 3747更规范。
下面给你两种正确的拼接方式:
方法1:使用CONCAT()函数(推荐)
这是MariaDB里最通用、最稳妥的字符串拼接方式,它会自动把非字符串类型的参数转换成字符串再拼接,不需要手动CAST:
SELECT CONCAT('id:', Cid) FROM table WHERE Cid = 3747;
方法2:使用||运算符(可选)
如果你习惯这种写法,需要确保你的MariaDB的sql_mode包含PIPES_AS_CONCAT(默认可能已经开启,但不同环境可能有差异),它会把||当作字符串拼接运算符:
SELECT 'id:' || Cid FROM table WHERE Cid = 3747;
内容的提问来源于stack exchange,提问作者Sjemmie
相关产品推荐
相关产品推荐

