昨天,同事问了我一个问题。在不查出原有数据的情况下,怎么样在现有字段内容的后面加如新的东西.比如,有个friend表,有个cname字段,ID为1,现在里面已经有内容为Rick,我想把 这个内容变为Rick.wang.刚开始,我们是用+号这样的写的.
update friend set cname=cname+'wang' where id=1.但这样加后,这个字段的内容就变为空了。最后我们证实,+只适合整数相加,不适合字符串.
今天看MYSQL手册的时候看到了个函数.concat,这个函数是连接字符串的。
手册里这样写
- CONCAT(str1,str2,...)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型
我试了下。成功了。SQL语句为update friend set cname=CONCAT(cname,'.wang') where id=1,这样就可以完成字符串相加了。输出结果为Rick.wang.
还看到一个函数.是用字符串连接的。如下。
update friend set cname=CONCAT_WS('.',cname,'wang') where id=1,
输出结果为Rick.wang.注意,第一个参数为连接两个字符串的字符.