在项目中需要把每个用户的电话后面都添加123的字符
我拿自己的账号做了测试,使用了“+”拼接符
update userinfo set mobile = mobile + '123' where usid = 2673
13517363148
变成
13517363271
为什么不是 13517363148123呢?
mobile在数据库的字段类型是varchar类型的,而此时不仅把电话号码变成了数字类型,也把'123'变成了数字类型并且相加了,所以数据库自己做了转换操作,印证了 “+” 不是拼接符,而是操作符
使用 concat关键字
update userinfo set mobile = concat(mobile, '123') where usid = 2673
就成功了,concat括号内,可以存在多个相加,例:concat('1', '2', '3'...);
既然数据可以自动转换,那么我又试了下,不是数字字符的列,比如姓名、名称字段,结果报错,如下:
update userinfo set uname = uname + '123' where usid = 2673
> 1292 - Truncated incorrect DOUBLE value: '莫闲'
> 时间: 0.001s