思路

先查询出满足某种条件的数据的最小ID,然后删除最小ID以外的数据就实现了去重

实例

查询最小ID的重复数据

select * from oms_relation_model orm

where orm.fd_id=

(

select min(t.fd_id) from oms_relation_model t

where orm.fd_ekp_id=t.fd_ekp_id and orm.fd_ekp_id=t.fd_ekp_id

)

;

删除操作

delete from oms_relation_model s

where s.fd_id not in (

select orm.fd_id from oms_relation_model orm

where orm.fd_id=

(

select min(t.fd_id) from oms_relation_model t

where orm.fd_ekp_id=t.fd_ekp_id and orm.fd_ekp_id=t.fd_ekp_id

)

);

HQL

/**

* 不重复的id列表

*

* @return

*/

private List getUniqueIds() {

Session session = getBaseDao().getHibernateSession();

String sql = "select fdId from OmsRelationModel orm"

+

" where orm.fdId in" +

" (select min(fdId) from OmsRelationModel t where orm.fdEkpId=t.fdEkpId and orm.fdAppPkId=t.fdAppPkId)";

Query query = session.createQuery(sql);

List result = query.list();

logger.info("查询重复数据,list=>" + JSONUtils.valueToString(result));

return result;

}

/**

* 删除重复的

*

* @param idList

*/

private void delSame(List idList) {

Session session = getBaseDao().getHibernateSession();

String sql = "delete from OmsRelationModel where fdId not in (:ids)";

Query query = session.createQuery(sql);

query.setParameterList("ids", idList);

int result = query.executeUpdate();

logger.info("查询重复数据,list=>" + JSONUtils.valueToString(result));

session.flush();

session.clear();

}

java mysql数据去重_java使用MySQL和HQL数据去重相关推荐

  1. java mysql 文本导入数据语句_Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL...

    Mysql load data的使用 数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量IN ...

  2. java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法

    遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...

  3. java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常

    mysql数据库字符集设为默认: 下面解决好的代码,没乱码,我测试过的 String sContent = new String(request.getParameter("content1 ...

  4. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  5. java mysql插入数据乱码_java向mysql数据库插入数据显示乱码的问题

    在做一个java web工程时,有时会碰到在向数据库添加数据库时,结果出现乱码"???"的问题.针对该问题的主要解决办法就是: 一.确保是否添加了字符集过滤器: 在java web ...

  6. java mysql插入数据乱码_java连接mysql插入数据出现中文乱码

    java连接了mysql数据库后,程序行向数据库中插入信息,代码如下: dbhelper boringdb = new dbhelper(); boringdb.connSQL(); String i ...

  7. java更改mysql数据乱码_java向mysql写入数据中文乱码解决方法

    造成乱码的原因是字符集不一致,通常只需要数据库建表时候指定的字符集与java设置数据库连接设置url指定的字符集一致. 1.创建数据库的时候:CREATE DATABASE `Db` CHARACTE ...

  8. java连接mysql 不推荐_java连接mysql

    看了一阵 spring 框架,不怎么好懂,最近脑子也有点不够用,于是乎来点简单的,用java连接数据库玩玩,顺便回顾一下数据库的增删改查~ 使用的是 eclipse .创建了个项目,然后网上找了篇教程 ...

  9. java链接mysql原始方法_java连接mysql数据库的方法

    看了一阵 spring 框架,不怎么好懂,最近脑子也有点不够用,于是乎来点简单的,用java连接数据库玩玩,顺便回顾一下数据库的增删改查~ 使用的是 eclipse .创建了个项目,然后网上找了篇教程 ...

最新文章

  1. 脱机多维数据集CUB文件的生成
  2. 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上
  3. 使用Exceptionless记录日志
  4. EndDialog和CDialog::OnOK()
  5. springboot官网-application.properties文件
  6. C#比较dynamic和Dictionary性能
  7. padans 判断列是否为空_pandas 如何判断指定列是否(全部)为NaN(空值)
  8. 虚拟局域网——vlan (讲解+配置)
  9. 特斯拉两高管被爆离职,股价狂跌超过10%,马斯克宣布高层大换血
  10. 利用Node.js为Node.js生成HttpStatusCode辅助类并发布到npm
  11. 【不建议阅读】电脑上腾讯会议录屏:OBS
  12. php - MySQL创建数据库和数据表
  13. 温故知新----表格
  14. 我的世界服务器权限组权限修改器,我的世界op权限组指令是什么 op权限组指令汇总...
  15. BJUI-textarea标签内容高度自适应问题
  16. python语句中print(type(1j))_Python语句 print(type(1/2))的输出结果是:______
  17. 基于servlet+jsp 个人博客系统
  18. 《惢客创业日记》2019.11.28(周四)近者悦,远者来
  19. java毕业生设计东理咨询交流论坛计算机源码+系统+mysql+调试部署+lw
  20. void在java中是什么意思_java中void什么意思

热门文章

  1. 使用 Tye 辅助开发 k8s 应用竟如此简单(三)
  2. 目录 | 数据结构与剑指Offer系列推文合集
  3. 揭秘软件开发的达摩克利斯之剑
  4. 打造钉钉事件分发平台之钉钉审批等事件处理
  5. [C#.NET 拾遗补漏]07:迭代器和列举器
  6. 我和ABP vNext 的故事
  7. 【半译】扩展shutdown超时设置以保证IHostedService正常关闭
  8. Asp.Net Core Filter 深入浅出的那些事-AOP
  9. 面试官:你连HTTP请求Post和Get都不了解?
  10. ProjectFileManager 发布!项目文件管理效率提升10倍以上!