SQL更新案例返回(受影响的0行),不应
我正在尝试运行这样的SQL命令SQL更新案例返回(受影响的0行),不应,sql,sql-server,Sql,Sql Server,我正在尝试运行这样的SQL命令 UPDATE Category SET SortOrder = ( CASE WHEN Category.Name = 'name1' THEN 1 WHEN Category.Name = 'name2' THEN 2 WHEN Category.Name = 'name3' THEN 3 END ) WHERE Deleted = 0 AND
UPDATE Category
SET SortOrder = (
CASE
WHEN Category.Name = 'name1' THEN 1
WHEN Category.Name = 'name2' THEN 2
WHEN Category.Name = 'name3' THEN 3
END
)
WHERE Deleted = 0 AND Name IN ('[name1,name2,name3]')
但它返回0个受影响的行。但当我检查它们的值时,不应该这样做。删除[],并在中使用单独的字符串 名称的值将是单独的字符串
WHERE Deleted = 0 AND Name IN ('[name1,name2,name3]')
这正好匹配一个字符串…'[name1,name2,name3]'
如果要匹配不同的值,则需要:
WHERE Deleted = 0 AND Name IN ('name1', 'name2', 'name3')
你可以在下面试试-
UPDATE Category
SET SortOrder = (
CASE
WHEN Category.Name = 'name1' THEN 1
WHEN Category.Name = 'name2' THEN 2
WHEN Category.Name = 'name3' THEN 3
END
)
WHERE Deleted = 0 AND Category.Name IN ('name1','name2','name3')
是的,我试过了,得到了同样的结果:/@Charlie-answer-edited你的名字值将是separatestring@Charlie工作正常吗?是的,这就是问题所在:
UPDATE Category
SET SortOrder = (
CASE
WHEN Category.Name = 'name1' THEN 1
WHEN Category.Name = 'name2' THEN 2
WHEN Category.Name = 'name3' THEN 3
END
)
WHERE Deleted = 0 AND Category.Name IN ('name1','name2','name3')