MYSQL 在字段里现有内容后面加东西 不指定

jed , 2015-7-2 15:02 , 数据库技术 , 评论(0) , 阅读(22997) , Via 本站原创 | |
昨天,同事问了我一个问题。在不查出原有数据的情况下,怎么样在现有字段内容的后面加如新的东西.比如,有个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.注意,第一个参数为连接两个字符串的字符.
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]