【发布时间】:2021-10-25 14:34:18
【问题描述】:
我有一个表,我试图根据多个 where 子句更新其单元格,但它失败了,我不明白为什么。任何人都可以看看这个并提供帮助吗?
| UserID | Options | Sub_option | Parameters |
|---|---|---|---|
| 1 | Name | Firstname | Rick |
| 1 | Name | Lastname | James |
| 1 | Autoreply | 0 | |
| 1 | Autosignature | 0 | |
| 2 | Name | Firstname | Rick |
| 2 | Name | Lastname | Astley |
| 2 | Autoreply | 0 | |
| 2 | Autosignature | 1 |
UPDATE Our_users
SET Parameters = CASE
WHEN UserID = '2' AND Options = 'MAIL' AND Sub_option = 'Autoreply' THEN '1'
WHEN UserID = '2' AND Options = 'MAIL' AND Sub_option = 'Autosignature' THEN '0'
END
运行时,它似乎更新了所有行的“参数”。 不能在WHEN子句中使用“AND”吗?
【问题讨论】:
-
如果
UPDATE没有WHERE子句,它将更新所有行。 -
@The Impaler 不完全是。您可以使用 ELSE。
-
@Rezu 使用
ELSE会产生相同的结果,但可能会非常昂贵。
标签: sql oracle sql-update