社区
Java EE
帖子详情
关于Java 对数据库查询去重复的问题。
svgr314
2012-09-04 04:51:09
我使用Query query = em.createQuery(HQL);的方法来查询一张表(实体)。
HQL语句中想要对该实体中某个属性相同的记录进行去重(不是整条记录完全相同,是一个字段相同),只保留ID最大的那一条!
请问HQL语句该如何写?
貌似用distinct可以去重,但是不能指定过滤掉的是哪几条而保留哪一条!
...全文
377
10
打赏
收藏
关于Java 对数据库查询去重复的问题。
我使用Query query = em.createQuery(HQL);的方法来查询一张表(实体)。 HQL语句中想要对该实体中某个属性相同的记录进行去重(不是整条记录完全相同,是一个字段相同),只保留ID最大的那一条! 请问HQL语句该如何写? 貌似用distinct可以去重,但是不能指定过滤掉的是哪几条而保留哪一条!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxhcloth
2012-09-05
打赏
举报
回复
忘了加注释了,上面的same是你说的相同的字段。
还有看了楼主的结贴率是0%,希望楼主问题解决了别忘了结贴,营造好的学习氛围。
zxhcloth
2012-09-05
打赏
举报
回复
HQL最终都会转换成sql,所以我给你写个sql吧,楼上们写的sql,思路上可以解决你的问题,但不是最好的方案,你这个问题其实是一个很经典的临界问题,一通百通,我给你“一”:
查询相同记录比最大ID小的
select * from table a
where exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
查询相同记录最大ID的
select * from table a
where not exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
删除相同记录比最大ID小的
delete from table a
where exists (
select 0 from table b where a.same = b.same and a.id < b.id
)
老韩同学
2012-09-05
打赏
举报
回复
写sql select * from 表名 a where a.id= (select max(id) from emp b where a.id=b.id)
辛格瑞拉
2012-09-05
打赏
举报
回复
delete from tab_1 a where rowid <(select max(rowid) from tab_1 b where b.属性=a.属性)
改改可用 ,祝你好运
老韩同学
2012-09-05
打赏
举报
回复
写sql的时候进行处理比如 select * from 表名 where id = (select max(id) from 表名 group by id)
wenhaoxp1987
2012-09-05
打赏
举报
回复
HQL
:select max(u.id) from User u group by u.userName由于Hibernate 要进行复合嵌套查询的话要配置映射文件的,所以建议用原生态的sql
SQL
:
select * from user t1 where t1.id in (select max(id) from user t2 group by t2.user_name)
svgr314
2012-09-05
打赏
举报
回复
= =0 卧槽…… 这年头60分都木有人看了吗?
svgr314
2012-09-04
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
order by id desc 就可以了 ,其实用 group by 也可以分组的。
[/Quote]
group by是可以分组,但是不能保留我想要的那条记录啊~
额…… 我说的这个id就是一个属性,不是那个主键ID啦。也就是保留某个字段最大的那条记录。
夜空中苦逼的程序员
2012-09-04
打赏
举报
回复
order by id desc 就可以了 ,其实用 group by 也可以分组的。
svgr314
2012-09-04
打赏
举报
回复
本人新手啊~ 求各位大大指教!!! T _ T
mybatis-generator-core-1.3.2
MBG通过解析数据库中的表结构,可以自动创建与之对应的
Java
实体类。这些实体类通常包含了表中的所有字段,并提供了getter和setter方法,方便对数据进行操作。实体类的构建遵循
Java
Bean规范,符合大多数开发者的编程...
mybatis-generator 代码自动生成工具---内有详细介绍
1. **配置文件**:generatorConfig.xml 是MBG的主要配置文件,它包含了关于数据库连接信息、目标生成路径、生成的代码模板等一系列设置。例如,你可以在这里指定数据库URL、用户名、密码,以及需要生成代码的表名。 ...
java
定时从数据库抓取数据库,
java
查询数据库
java
如何实现定时从
数据库查询
新增的数据?...
第一类,开个线程,定式扫描,好比每一分钟查询一次数据库,将前后数据做比对(比对方式能够正在
java
端先把第一次的数据存到一个调集外,然后每次查询调集之后,将两次的内容正在
java
端做比力)第二类,正在数据库端,...
Java
连接数据库并实现添加数据有
重复
不插入数据
当你不希望存入数据库中的某组数据
重复
。我这里的例子是一个注册系统,不希望账户名
重复
。 2、设置数据库中某字段不
重复
alter table user.users add unique(account); alter table + 数据库名.表名 + add unique ...
java
数据库如何防止
重复
数据_解决方案:如何防止数据
重复
插入?
问题
起源,微信小程序抽风 wx.request()
重复
请求服务器提交数据。后端服务也很简单,伪代码如下:class SignLogService{public void saveSignLog(SignLogDO log){// 简单插入做记录SignLogDAO.insert(log);}}发现...
Java EE
67,549
社区成员
225,860
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章