有人可以告诉我如何在SQL中追加?我整天都在试图解决这个问题。这就是我到目前为止所做的:
update table1
set field1 = field1 + '123456'
where field2 = '12'
抱歉,我忘了提到我在声明中更新了多个字段。
答案 0 :(得分:16)
只要field1不为null或者要追加的数据不为空,您的语句就应该有效。
在field1为null的情况下,这样的事情会有所帮助。
update table1 set field1 = ISNULL(field1, '') + '123456' where field2 = '12'
答案 1 :(得分:5)
field1 = field1 || '12345'
答案 2 :(得分:0)
你的问题有点令人困惑,因为你说追加,但你的例子实际上只是一个集合操作:
update table1 set field1 = '123456', field2 = '' where field2 = '12'
如果你实际附加它将取决于你的数据库,但查找字符串连接以供参考。
update table set field1 = concat(field2, '3456') where field2 = '12'
答案 3 :(得分:0)
以下是varchar连接和整数加法之间的区别,您似乎正在进行varchar连接,您可能需要使用CAST and CONVERT (Transact-SQL)来添加数字
示例1 w /整数:
DECLARE @table1 TABLE(field1 int, field2 int)
INSERT INTO @table1 VALUES (123456, 12)
SELECT 'before' as 'before', * FROM @table1
UPDATE @table1 SET field1 = field1 + 123456 WHERE field2 = 12
SELECT 'after' as 'after', * FROM @table1
示例1结果:
示例2 w / varchar:
DECLARE @table2 TABLE(field1 varchar(50), field2 varchar(2))
INSERT INTO @table2 VALUES ('123456', '12')
SELECT 'before' as 'before', * FROM @table2
UPDATE @table2 SET field1 = field1 + '123456' WHERE field2 = '12'
SELECT 'after' as 'after', * FROM @table2
示例2结果:
答案 4 :(得分:0)
如果您使用的是MySQL,则查询可以简化为
UPDATE table set field1 = CONCAT('123456', field1) where field2 = '12'