MySql:如何从包含重复字段的行的表中更新单行出现?

标签 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

其中 win10。 并且 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

最佳答案

有几种方法将它们全部设置为 0,然后将每个 session 的最小值更新为 1。

Update table set win = 0
update table set win = 1 where ID in (Select min(ID) from table group by session)

或者 全部合一

Update table set win=0 where ID not in (Select MIN(ID) from table group by session)

关于MySql:如何从包含重复字段的行的表中更新单行出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164514/

相关文章:

mysql - 如何在 MySQL Workbench 中放大 EER 图?

php - Laravel 投票系统

arrays - Excel 2013 VBA Range.RemoveDuplicates 指定数组的问题

Magento,网址重复,搜索引擎优化

python - 选择排序的重复问题

MySQL 删除一列中的重复项,根据第二列保留最小值和最大值

c# - 使用变量加载数据 INFILE

java - Web服务——如何部署?

java - 多线程搜索单个集合中的重复项

php - 从 mysql 表创建复选框(表)