我这里有一个看似非常简单的情况,但我从未处理过。我研究了这个问题,发现情况非常相似,但还不够接近,无法在生产数据库上运行。
我有 1 个包含 2 列的表。我想要查找第 1 列中共享相同值的所有条目,并更新其中一行的第 2 列。请记住,下面的示例过于简化。这是一个大型数据库,表中包含许多行...我需要更新 col_2 中的特定值以获取 col_1 中的匹配值之一。
For instance:
col_1 col_2
1111 green
1111 blue
2222 green
2222 blue
Becomes:
col_1 col_2
1111 green
1111 red
2222 green
2222 red
根据我收集的信息,有些内容类似于更新语句,但我对查找匹配值并仅更新其中一个值的逻辑感到困惑。 任何帮助表示赞赏。
最佳答案
假设每个 col1
的 col2
值都是唯一的,您可以使用 join
选择一个值:
update t join
(select col1, max(col2) as max_col2
from t
group by col1
) tt
on tt.col1 t.col1
set col2 = 'red';
关于mysql - 用于更新表中的行、插入/更新同一个表的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546084/