我有一个表(700多行),格式如下:
id | session | win
------------------
1 1122 1
2 1122 1
3 1122 1
4 4559 1
5 4559 1
6 4559 1
7 4559 1
8 4559 1
其中
win
是1
或0
。session
不是唯一的。我想更新具有相同
session
的行组,并将其所有win
字段设置为0
,但1除外。目标:
id | session | win
------------------
1 1122 1
2 1122 0
3 1122 0
4 4559 1
5 4559 0
6 4559 0
7 4559 0
8 4559 0
最佳答案
考虑到MySQL执行更新的糟糕语法,我唯一能想到的方法是:
update t set win = 0
where id not in (
select id from (
select min(id) id from t
group by session
) s
);
也可以加入而不是分组,但我认为在这种情况下分组会更快。