请教SQL的一个问题~,如何在update时向某个列的值追加字符?

现在我想update某行某列的值,我只会用一个新的字符串换那个旧的字符串。用什么SQL函数可以直接在原来的字符串后面直接追加上新的字符串~?
我用的是MySQL
最新回答
蔚蓝的心

2024-11-27 10:25:11

可以使用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 值。

呵呵,希望能有帮助,^_^
真相是假

2024-11-27 16:29:19

用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)

---
以上,希望对你有所帮助。
考试的考试哪里才是假期

2024-11-27 15:16:02

lzp4881 用的是 SQL Server 语法,正规的 SQL 92 语法是:

update tableA set fieldA = fieldA || '新字符串'

该 SQL 在绝大部分支持 SQL 92 的数据库中都通用,例如 Oracle、DB2 等。
指名的幸福

2024-11-27 14:55:55

update 表名 set 列名=列名+'字符串' where 列名='旧的字符串'
一见钟情我相信

2024-11-27 11:34:25

update table set field=field+'新字符串'