sql - 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 行受影响)。但是当我检查它们的值时,它不应该。
解决方案
WHERE Deleted = 0 AND Name IN ('[name1,name2,name3]')
这完全匹配一个字符串。. . '[name1,name2,name3]'
.
如果要匹配不同的值,则需要:
WHERE Deleted = 0 AND Name IN ('name1', 'name2', 'name3')
推荐阅读
- java - 如何调用 REST API 动词 POST,输入是 UUID 列表?
- docker - Docker Compose:在同一个 Repository 中为开发和部署设置两个 compose 文件
- javascript - 我想检查数据库中输入字段的值,并使用 laravel 将该值的第二列的文本放到另一个字段中
- reactjs - 如何通过单选按钮实现动态 UI 渲染?
- php - 必须在调用 getParser 之前调用 buildParser
- android - 具有实时 Firebase 商店的应用程序中的 Android Studio 错误
- oauth-2.0 - 为什么我们需要 OIDC ID Token?
- mysql - MYSQL 根据多个条件返回所有字段,并且在单个列上不同,但是
- r - 错误:使用 fscaret 进行特征选择时,$ 运算符对原子向量无效(包装器方法)
- java - 解决了!- Spring boot:获取 415 不支持的媒体类型