gpt4 book ai didi

Mysql 重复行(使用 2 列检测到重复)

转载 作者:IT老高 更新时间:2023-10-28 23:54:58 26 4
gpt4 key购买 nike

如何删除此设置中的重复项?

id    A       B 
----------------
1 apple 2
2 orange 1
3 apple 2
4 apple 1

在这里,我想删除出现两次的 (apple,2)。身份证号码是唯一的。如果不是,我会使用 DISTINCT 关键字。我可以如何从 A 列和 B 列中创建一个键,然后在其上使用 DISTINCT 关键字来获得我需要的东西吗?非常感谢您的回复。

最佳答案

delete from myTable 
where id not in
(select min(id)
from myTable
group by A, B)

即括号中的选择返回每个 A 和 B 分组的第一个 id;删除所有不在此集合中的 ID 将删除 A-plus-B 组合的所有出现,这些组合是其第一次出现的“后续”。

编辑:此语法似乎有问题:请参阅错误报告:

http://bugs.mysql.com/bug.php?id=5037

一个可能的解决方法是:

delete from myTable 
where id not in
(
select minid from
(select min(id) as minid from myTable group by A, B) as newtable
)

关于Mysql 重复行(使用 2 列检测到重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799518/

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