MySql:如何从包含重复字段的行的表更新单行事件?

Ahm*_*dad 2 mysql duplicates

我有一个(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
Run Code Online (Sandbox Code Playgroud)

win要么是10.而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
Run Code Online (Sandbox Code Playgroud)

xQb*_*ert 5

几个方法将它们全部设置为0,然后将每个会话的最小值更新为1.

Update table set win = 0
update table set win = 1 where ID in (Select min(ID) from table group by session)
Run Code Online (Sandbox Code Playgroud)

或者一体化

Update table set win=0 where ID not in (Select MIN(ID) from table group by session)
Run Code Online (Sandbox Code Playgroud)