请教SQL的一个问题~,如何在update时向某个列的值追加字符?
现在我想update某行某列的值,我只会用一个新的字符串换那个旧的字符串。用什么SQL函数可以直接在原来的字符串后面直接追加上新的字符串~?我用的是MySQL...
现在我想update某行某列的值,我只会用一个新的字符串换那个旧的字符串。用什么SQL函数可以直接在原来的字符串后面直接追加上新的字符串~?
我用的是MySQL 展开
我用的是MySQL 展开
5个回答
展开全部
可以使用CONCAT函数进行字符串的连接,
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);
-> ‘MySQL’
mysql> SELECT CONCAT(’My’, NULL, ‘QL’);
-> NULL
mysql> SELECT CONCAT(14.3);
-> ‘14.3′
CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
呵呵,希望能有帮助,^_^
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);
-> ‘MySQL’
mysql> SELECT CONCAT(’My’, NULL, ‘QL’);
-> NULL
mysql> SELECT CONCAT(14.3);
-> ‘14.3′
CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
呵呵,希望能有帮助,^_^
展开全部
用concat函数。
update 表名 set 字段=concat(ifnull(字段,''),'要追加的字符串');
********************
测试log:
1、concat连接两个非空字符串
mysql> select concat('bbbb','aaaaa');
+------------------------+
| concat('bbbb','aaaaa') |
+------------------------+
| bbbbaaaaa |
+------------------------+
1 row in set (0.00 sec)
2、concat连接一个空字符串和非空字符串
mysql> select concat(ifnull(NULL,''),'aaaaa');
+---------------------------------+
| concat(ifnull(NULL,''),'aaaaa') |
+---------------------------------+
| aaaaa |
+---------------------------------+
1 row in set (0.00 sec)
---
以上,希望对你有所帮助。
update 表名 set 字段=concat(ifnull(字段,''),'要追加的字符串');
********************
测试log:
1、concat连接两个非空字符串
mysql> select concat('bbbb','aaaaa');
+------------------------+
| concat('bbbb','aaaaa') |
+------------------------+
| bbbbaaaaa |
+------------------------+
1 row in set (0.00 sec)
2、concat连接一个空字符串和非空字符串
mysql> select concat(ifnull(NULL,''),'aaaaa');
+---------------------------------+
| concat(ifnull(NULL,''),'aaaaa') |
+---------------------------------+
| aaaaa |
+---------------------------------+
1 row in set (0.00 sec)
---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lzp4881 用的是 SQL Server 语法,正规的 SQL 92 语法是:
update tableA set fieldA = fieldA || '新字符串'
该 SQL 在绝大部分支持 SQL 92 的数据库中都通用,例如 Oracle、DB2 等。
update tableA set fieldA = fieldA || '新字符串'
该 SQL 在绝大部分支持 SQL 92 的数据库中都通用,例如 Oracle、DB2 等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update 表名 set 列名=列名+'字符串' where 列名='旧的字符串'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update table set field=field+'新字符串'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询