首页 > 解决方案 > SQL UPDATE CASE 返回(0 行受影响),它不应该

问题描述

我正在尝试运行这样的 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 Name IN ('[name1,name2,name3]')

但它返回(0 行受影响)。但是当我检查它们的值时,它不应该。

标签: sqlsql-server

解决方案


WHERE Deleted = 0 AND Name IN ('[name1,name2,name3]')

这完全匹配一个字符串。. . '[name1,name2,name3]'.

如果要匹配不同的值,则需要:

WHERE Deleted = 0 AND Name IN ('name1', 'name2', 'name3')

推荐阅读