Mysql 如何更新除id N之外满足要求的所有记录?

Mysql 如何更新除id N之外满足要求的所有记录?,mysql,Mysql,以下是我的示例数据: id name age location staff score ------------------------------------------------- 1 Joe 21 uk 0 100 2 Sam 27 uk 0 200 3 Luke 21 uk 1 300

以下是我的示例数据:

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
,除了id上的Luke
3
,而不将Luke重置为
0

我会这样编码:

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

但这会将id
3
重置为
0
。我不希望它触碰id
3

一种方法是:

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

在MySQL中,它们的意思是一样的:

  • 如果id不同于3

另外,作为旁注,由于Luke是一个staff
1
,您甚至不需要检查
id
,因为它只会将staff
0
的分数更改为
10

LGTM,可能是因为您的列类型是int,并且您正在根据varchar(“”)检查值是的,当我回顾自己的时候,我意识到了这一点。非常感谢。