gpt4 book ai didi

mysql - 更新表中计数>1 的记录

转载 作者:行者123 更新时间:2023-11-28 23:36:15 25 4
gpt4 key购买 nike

当有多个 FieldA 和 FielDB 相同的记录时,我想标记表中的记录。选择当然很容易:

Select Count(*) from Table group by FieldA,FieldB having Count(*)>1

现在我想做一个更新,并将 FieldA 和 FieldB 设置为 NULL,仅用于这些记录。我认为这是某种“加入”,但这不是我非常熟悉的东西。有一些相当简单的方法可以做到这一点吗?

最佳答案

这是一种方法,使用具有 3 个字段的临时表:MIN(id)字段idTable 中的唯一键或主键, 和 FieldAFieldB :

CREATE TEMPORARY TABLE tmp_fix AS
SELECT MIN(id) AS id, FieldA, FieldB
FROM Table GROUP BY FieldA, FieldB having Count(*)>1;

然后我们可以更新原来的Table设置所有重复 FieldA, FieldBNULL除了具有最低 ID 的那个(我们保存在 tmp_fix 表中):

UPDATE Table t 
LEFT JOIN tmp_fix f ON t.FieldA = f.FieldA AND t.fieldB = f.FieldB
SET t.FieldA = NULL, t.fieldB = NULL
WHERE t.id <> f.id;

您可能想要复制 Table在尝试之前!

关于mysql - 更新表中计数>1 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com