博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql 去重排序及 java分页
阅读量:5040 次
发布时间:2019-06-12

本文共 1903 字,大约阅读时间需要 6 分钟。

一、sql去重排序:

需求,对数据库数据按mfrom去重(显示最新数据),并对去重后的数据按mcreated_time进行倒序排列:

sql语句为:

(1)SELECT * FROM messages m WHERE NOT EXISTS (SELECT * FROM messages WHERE m.mfrom = mfrom AND m.mcreated_time < mcreated_time)

GROUP BY m.mfrom ORDER BY m.mcreated_time DESC;

(2)SELECT * FROM messages m WHERE NOT EXISTS (SELECT * FROM messages WHERE m.mfrom = mfrom AND m.mcreated_time < mcreated_time)

ORDER BY m.mcreated_time DESC;

注:(1)、(2)sql语句可达到同样的效果,主要原因为通过NOT EXISTS 语句已经筛选出mfrom对应的那条最新数据,已达到去重的目的,再对其进行按时间综合排序即可。

  但如果同一个mfrom含有相同的最大时间,则需使用(2);

二、java分页

要求:对获取的list集合进行分页显示,每页显示pageSize=10条,通过传参id,后续页显示当前id对应的下pageSize个对象,实现分页目的;

(1)传参messageContainerId初始值为" "时:

List<MessageContainerVO> list = new ArrayList<MessageContainerVO>();

// 分页
int sum = 0;
boolean flag = false;
for (int i = 0; i < messageVOList.size(); i++) {
MessageContainerVO messageVO = messageVOList.get(i);
if (flag) {
if (sum < pageSize) {
list.add(messageVO);
sum += 1;
} else {
break;
}
} else {
if (messageContainerId.equals("")) {
list.add(messageVO);
sum += 1;
flag = true;
} else if (messageVO.getMessageContainerId().equals(messageContainerId)) {
flag = true;
}
}
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("informationList", list);

return map;

 

(2)传参messageId初始值不" "时:

List<InformMessageVO> voList2 = new ArrayList<>();

boolean searched = false;
int sum = 0;
for (int i = 0; i < voList.size(); i++) {
InformMessageVO vo = voList.get(i);
if (searched) {
if (sum < pageSize) {
voList2.add(vo);
sum += 1;
} else {
break;
}
} else {
if (i == 0 && messageId.equals(vo.getMessageId())) {  //第一页需显示messageId对应的那一条
voList2.add(vo);
sum += 1;
searched = true;
} else if (i != 0 && messageId.equals(vo.getMessageId())) {//后续页不需要显示messageId对应的那一条
searched = true;
}
}
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("informMessageList", voList2);
return map;

转载于:https://www.cnblogs.com/qqzhulu/p/10485738.html

你可能感兴趣的文章
iframe的一些介绍
查看>>
mapper.xml实现oracle的分页语句
查看>>
[51nod1267]4个数和为0(预处理+双指针)
查看>>
[poj2151]Check the difficulty of problems概率dp
查看>>
深入浅出之Smarty模板引擎工作机制(一)
查看>>
Java动态代理机制
查看>>
linux mail 命令参数
查看>>
android 网络语音电话合集 此文为转载备份
查看>>
hdu 5071 vector操作恶心模拟
查看>>
ECShop 常见问题索引
查看>>
0916 编程实验一 词法分析程序
查看>>
angular和echarts的结合使用,折线图指令
查看>>
洛谷 P1227 [JSOI2008]完美的对称
查看>>
2019牛客暑期多校训练营(第二场)
查看>>
Intellij新建Spring项目引入用户目录下的Spring jar包
查看>>
iOS 动画基础-显式动画
查看>>
surprise库官方文档分析(二):使用预测算法
查看>>
正规文法转化DFA
查看>>
敏捷开发(三)- 估算故事
查看>>
bzoj 2730: [HNOI2012]矿场搭建
查看>>