mysql - 如果其他值重复,如何更新 MySQL 表中的值?

标签 mysql duplicates

我有以下结构的表:

TBL1

COL1 COL2 COL2
---- ---- ----
A    B    1
B    C    3
A    C    11
A    D    13
B    D    10

如果 col1 中的值重复,我如何更新 col3?

我希望用找到的最大值更新 col3 中的值。

结果表看起来像:

COL1 COL2 COL2
---- ---- ----
A    B    13
B    C    10
A    C    13
A    D    13
B    D    10

提前致谢!!!

最佳答案

更新与所需数据相结合。 Correlated subqueries are not wellcome :

update T inner 
join ( select c1, max( c3) as m from T) T2 
on T.c1 = T2.c1 
set T.c3 = T2.m;

测试:

mysql> create table T ( c1 char(1), c3 int ) ;
Query OK, 0 rows affected (0.15 sec)

mysql> insert into T values ( 'A', 1),('B',3),('A',11),('A',13);
Query OK, 4 rows affected (0.02 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * From T;
+------+------+
| c1   | c3   |
+------+------+
| A    |    1 |
| B    |    3 |
| A    |   11 |
| A    |   13 |
+------+------+


mysql> update T inner join ( select c1, max( c3) as m from T) T2 
on T.c1 = T2.c1 set T.c3 = T2.m;
Query OK, 2 rows affected (0.07 sec)
Rows matched: 3  Changed: 2  Warnings: 0

mysql> select * from T;
+------+------+
| c1   | c3   |
+------+------+
| A    |   13 |
| B    |    3 |
| A    |   13 |
| A    |   13 |
+------+------+
4 rows in set (0.00 sec)

关于mysql - 如果其他值重复,如何更新 MySQL 表中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686477/

相关文章:

php - Mysql数据备份转换成字符串

拉拉维尔 4 : avoid duplicate entry

excel - 在excel中为重复项添加后缀

python - 快速删除列表中的连续重复项和另一个列表中的相应项目

mongodb - 通过键字段查找 MongoDB 集合中的所有重复文档

algorithm - 检查二叉树中的重复项

mysql - Sails 和 MySQL 正在创建重复的行

python - 在缓存中存储 sqlalchemy 映射对象

mysql - 从列中选择唯一条目

javascript - 单击“提交”按钮后,我想收到成功警报,然后单击“确定”,我应该重定向到 PHP 的新页面