mysql删除重复数据只保留一条

表名:test

id num
1 11
2 22
3 33
14 11
15 22
16 33

id为主键自增id,可以看的出来14、15、16为重复数据,如何根据num删除重复的数据,只保留一条

DELETE 
FROM
    test 
WHERE
    id NOT IN ( SELECT id FROM ( SELECT max( id ) AS id FROM test GROUP BY num ) AS b );

此处 SELECT max( id ) AS id FROM test GROUP BY num 查询出来的是id为14、15、16三条数据,
所以删除的是id为1、2、3的
如果要保留id为1、2、3,删除id为14、15、16,只需要将 max 更改为 min 即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,475评论 0 9
  • 一. Java基础部分.................................................
    wy_sure阅读 3,850评论 0 11
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,809评论 0 11
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,859评论 1 45
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,662评论 0 17