在MySQL中满足两个特定条件时更新列值

0tdrvxhp  于 2023-02-18  发布在  Mysql
关注(0)|答案(2)|浏览(178)

我是一个编程新手,我尝试在满足两个条件的情况下用新值505.99更新表中标记为'bonus'的列:如果givenname是玛丽并且他们的奖金当前是155.99,或者如果他们的职业是模特并且他们的奖金当前也是155.99。7行应该被更新,但是只有1行被更新。查询看起来应该对我有效,所以想知道我遗漏了什么?正在寻找任何指针!提前感谢

UPDATE customers
SET bonus = 505.99
WHERE occupation = 'Model' AND bonus = 155.99
OR givenname = 'Mary' AND bonus = 155.99;
3mpgtkmj

3mpgtkmj1#

你能试着像这样用括号吗?

UPDATE customers
SET bonus = 505.99
WHERE
    (occupation = 'Model' AND bonus = 155.99)
    OR
    (givenname = 'Mary' AND bonus = 155.99);
bvjveswy

bvjveswy2#

同时使用ANDOR条件时,应正确使用这两个条件。
让我们构建您的查询:
正如我们所知,只要下列条件成立,我们就会设定值。

  1. occupation = 'Model' OR givenname = 'Mary'**这应该与OR**一起写入
  2. bonus = 155.99:我们可以在选择查询中使用AND单独添加。
    因此,正确的使用条件是(occupation = 'Model' OR givenname = 'Mary') and bonus = 155.99;
    我们可以将上面的查询重写为:
UPDATE customers
SET bonus = 505.99
WHERE bonus = 155.99
AND (occupation = 'Model' OR givenname = 'Mary');

你可以在这里找到更多好的例子:

相关问题