如何更新满足除ID N以外的要求的所有记录?

时间:2014-07-16 19:49:07

标签: mysql

以下是我的示例数据:

id    name    age    location    staff     score
-------------------------------------------------
1     Joe     21     uk          0         100
2     Sam     27     uk          0         200
3     Luke    21     uk          1         3000
4     Kim     25     usa         0         60

我希望将所有分数重新设置为10,除了身份3上的Luke,而不将Luke重置为0

我的代码是这样的:

UPDATE users_stats SET score = '10' WHERE staff = '0' AND not(id = '3')

但是会将ID 3重置为0。我不希望它触及身份3

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是:

UPDATE users_stats 
   SET score = 10
 WHERE staff = 0 AND 
       id <> 3

更常见的方式是:

UPDATE users_stats 
   SET score = 10
 WHERE staff = 0 AND 
       id != 3

Live DEMO

在MySQL中,它们的含义相同:

  • 如果id不同于3

另外,作为旁注,由于Luke是一名工作人员1,您甚至不需要id检查,因为它只会将员工0的成绩更改为得分10