在我的特定情况下,我们有一个db表,除其他字段外,还有一个“Image”字段。我们想在此表的每一行中为此列添加“.jpg”。为了简单起见,我们会说它只有两列......一个ID列和一个Image列。 (跳过“Image”空字符串的行的奖励积分。)
问题标题有点开放,因为我可以想象有人想要对所有行做任何事情。 (“更新所有行,以便列'X'的值除以2”,“更新所有行,以便列'Y'前置此路径”,等等。)
虽然我使用的是SQL服务器,但我怀疑这些答案会非常普遍...但如果您的具体答案不是,请不要让它阻止您回复......但请在帖子中添加它是什么系统。
答案 0 :(得分:10)
UPDATE [table]
SET [image] = [image] + '.jpg'
WHERE ISNULL([image], '') <> ''
如果您希望这是可重复的:
UPDATE [table]
SET [image] = [image] + '.jpg'
WHERE ISNULL([image], '') <> ''
AND [image] NOT LIKE '%.jpg'
答案 1 :(得分:1)
update Table
set image = image + '.jpg'
where image <> ''
或
update Table
set image = image + '.jpg'
where rtrim(image) <> ''
或
update Table
set image = image + '.jpg'
where rtrim(coalesce(image,'')) <> ''
答案 2 :(得分:1)
SQLServer 2k
declare @Image table (
Id int,
Name varchar(10)
)
insert into @Image values (1,'hello')
insert into @Image values (2,'')
insert into @Image values (3,'world')
update @Image set Name = Name + '.jpg'
from @Image where Name <> ''
select * from @Image
当您的更新条件跨越多个表时,update BLAH from YIKES
语法非常有用,因为它允许连接。
答案 3 :(得分:0)
有些事情:
Update tableName
Set Image = Image+'.jpg'
where
IsNUlL(Image,'') != ''
这是针对T-SQL(SQL Server)方言。
答案 4 :(得分:0)
UPDATE imageTbl SET image = image + '.jpg' WHERE image IS NOT NULL