delete from co_jobinformation c
where c.name in (select cc.name from co_jobinformation cc group by  cc.name   having count(cc.name) > 1)
and rowid not in (select min(rowid) from co_jobinformation e group by e.name having count(e.name )>1) 

之前在oracle数据库中能删除重复数据并且能保留一条唯一数据,但是相同的MySQL中就不行,

mysql有个特性,对于表进行修改,删除操作,子查询不能和外层的查询的表一样,所以在加个select就可以了

DELETE tt.*
FROM t_user tt  --这是操作的表
WHERE tt.username --这是用户名重复的数据
IN(                      
  SELECT cc.username            
  FROM (                  
    SELECT b.*
    FROM t_user b
  ) cc
  GROUP BY cc.username
  HAVING COUNT(cc.username) >1
)
AND tt.id  --这里是保留id最小的一条,应该比较容易看懂.
NOT IN(
  SELECT MIN(e.id)
FROM(
    SELECT ee.*
    FROM t_user ee) e
    GROUP BY e.username
    HAVING COUNT(e.username )>1)
  )
)

刚才网上找到一种写法

select a.* from jc_informationpublic a
where a.id !=
(
select max(b.id) from jc_informationpublic b
where a.unit_name = b.unit_name
)  
AND id NOT IN (SELECT min(id) FROM jc_informationpublic c GROUP BY c.unit_name HAVING COUNT(c.unit_name)>1)

也能实现效果,但是据说效率不高.

我写的有点丑,但是我想要的结果实现了,就是把上面子查询里面的表换成select查询,还请高手留下优质SQL,感激不尽!

最新文章

  1. 红米3 SM71.1(android-7.1.1_r6)更新发布20161229年末增强版
  2. CentOS忘记密码或者丢失口令解决方法
  3. 牛逼的OSQL----大数据导入
  4. GridView联表搜索,排序
  5. adb或appium下多设备中指定设备的启动
  6. Linux中tty、pty、pts的概念区别
  7. SRM 583 DIV1
  8. HTML与CSS入门——第六章 使用字体
  9. poj2478--欧拉函数打表
  10. android app 架构设计02
  11. Java 不使用科学计数法表示数据设置
  12. [Hadoop] - TaskTracker源码分析
  13. Kaggle新手入门之路
  14. 【Unity3D与23种设计模式】桥接模式(Bridge)
  15. DevExpress TreeList 拖动时中如何判断源节点作为目标节点的子节点还是兄弟节点
  16. http 自定义信息头(header)设置与获取
  17. 关于IO的整理
  18. 常用的一些markdown格式
  19. Linux 小知识翻译 - 「端口限制」
  20. MariaDB基于GTID主从复制及多主复制

热门文章

  1. Foreach 原理
  2. PHP两种基础的算法:冒泡、快速排序法》》》望能够帮助到大家
  3. oracle对/dev/shm的使用
  4. 你不知道的CSS背景—css背景属性全解
  5. docker学习
  6. Youth -Samuel Ullman
  7. Beginning Scala study note(7) Trait
  8. jq冒泡之——点击其他地方隐藏
  9. Mysql数据库的使用总结之Innodb简介
  10. 《UML大战需求分析》阅读随笔(五)