当前位置: 首页 > 面试题库 >

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

汝彭薄
2023-03-14
问题内容

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

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

在这里,我要删除两次的(apple,2)。ID号是唯一的。如果没有,我会使用DISTINCT关键字。我可以通过A列和B列创建一个键,然后使用DISTINCT关键字获得所需的内容吗?非常感谢您的答复。


问题答案:
delete from myTable 
where id not in
(select min(id)
from myTable
group by A, B)

也就是说,括号中的select返回A和B的每个分组的第一个ID;删除不在此集合中的所有ID,将删除A-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
)


 类似资料:
  • 我最近在一次采访中被问到这个问题。 问题陈述:你有两次定期约会。每个约会都包含所需的开始时间、可选的结束时间和重复规则(必需)。下面列出了所有递归规则: 每日:示例:每2天 每周:示例:每3周在星期二 每月:示例:每2个月第17天/每月第三个星期二 每年:示例:每两年4月17日 你必须检查重叠2以上的事件。 我有一个解决日常复发的办法。 首次预约:开始时间:1/3/2018(dd/MM/YYYY)

  • 问题内容: 这个问题已经在这里有了答案 : 如何在MySQL中返回数据透视表输出? (8个答案) 6年前关闭。 我在将行移至列和将列移至行时遇到问题。如果只是将行转置为列或将列转置为行,则可以这样做。 这是我的数据表 我想得到以下输出 等等.. 有人知道该怎么做吗?非常感谢! 问题答案: 你可以这样 输出: 这是 SQLFiddle 演示

  • 我是新加入这个董事会的,但我已经读过你很多年了。:) 我正试着学编码,但我还在第一步。然而,我将使用一个脚本来检测用户的浏览器。 这适用于所有主要的浏览器(我在chrome、firefox和IE上试用过),但它不适用Edge。我该怎么修好它?谢谢!

  • 我有一个熊猫数据框,有4行4列-这里是一个简单的版本: 我想做的是把它转换成一个2*8的数据帧,每个数组都有B、C和D——所以它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但是给了我一个错误,我无法识别源(以 DataError:没有要聚合的数字类型 ) 接下来,我想根据一个值分割数据帧,但我认为.groupby命令可能会处理它

  • 问题内容: 我有一张棒球运动员的桌子(全部1000人左右),其中包括: 但是我认为有些球员已经加入了两次。我该如何检查特定姓氏,姓氏组合的出现次数? 问题答案: 这提供了重复项列表: 如果要查看每一行的计数,请删除hading子句:

  • 问题内容: 这个问题已经在这里有了答案 : 熊猫将一些列转换为行 (4个答案) 2年前关闭。 我有一个熊猫数据框,有4行4列-这是asimple版本: 我想做的是将其转换为2 * 8数据帧,并对每个数组使用B,C和D Alligng-因此它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但给我一个错误,我无法识别来源(结尾为 DataError:没有要聚合的数字类型 ) 接下来,我想基于A值