lambdaQueryWrapper多条件嵌套查询方法是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"lambdaQueryWrapper多条件嵌套查询方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"lambdaQueryW
千家信息网最后更新 2026年11月01日lambdaQueryWrapper多条件嵌套查询方法是什么
这篇文章主要讲解了"lambdaQueryWrapper多条件嵌套查询方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"lambdaQueryWrapper多条件嵌套查询方法是什么"吧!
lambdaQueryWrapper多条件嵌套查询
需求:根据条件获取一段时期内按照年份和周存储的数据
表结构如下
| userNetType | moduleName | cityName | subjectCname | subjectEname | pv | uv | year | week |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 江苏省 | 死神专题 | sszt | 100 | 70 | 2019 | 51 |
| 1 | 1 | 江苏省 | 海贼王专题 | hzwzt | 200 | 80 | 2019 | 52 |
| 1 | 1 | 江苏省 | 火影忍者专题 | hyrzzt | 300 | 90 | 2020 | 01 |
/** * @param pageNum 当前页 * @param pageSize 每页条数 * @param moduleName 产品 * @param userNetType 运营商 * @param cityName 城市名称 * @param beginTime 开始周的任意一天日期(例如:2019-12-20) * @param endTime 结束周的任意一天日期(例如:2020-01-20) * @param keyWord 查询条件(专题英文名或者中文名) * @return */ //开始年份 String beginYear = null; //结束年份 String endYear = null; //开始周数 String beginWeek = null; //结束周数 String endWeek = null; /*这部分内容忽略,调用了其他的方法, 反正就是为了获取开始日期所在的年份、周数以及结束日期所在的年份、周数*/ if (StringUtils.isBlank(beginTime) || StringUtils.isBlank(endTime)) { DateTime dateTime = DateUtil.lastWeek(); //格式化日期,结果:yyyyMMdd beginTime = DateUtil.formatDate(dateTime); beginYear = TimeUtils.getDateOfYearWeek(beginTime).get("year"); endYear = beginYear; beginWeek = TimeUtils.getDateOfYearWeek(beginTime).get("week"); endWeek = beginWeek; } else { beginYear = TimeUtils.getDateOfYearWeek(beginTime).get("year"); endYear = TimeUtils.getDateOfYearWeek(endTime).get("year"); beginWeek = TimeUtils.getDateOfYearWeek(beginTime).get("week"); endWeek = TimeUtils.getDateOfYearWeek(endTime).get("week"); } Page page = new Page<>(pageNum, pageSize); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); if (beginYear.equals(endYear)) { queryWrapper.eq(DwSubjectDataInfoWw::getYear, beginYear); queryWrapper.between(DwSubjectDataInfoWw::getWeek, beginWeek, endWeek); } else { //因为Java8 Lambda表达式中最终变量问题,重新赋值一个参数解决 String year1 = beginYear; String year2 = endYear; String week1 = beginWeek; String week2 = endWeek; queryWrapper.and(wrapper -> wrapper.and(wrapper1 -> wrapper1.eq(DwSubjectDataInfoWw::getYear, year1).ge(DwSubjectDataInfoWw::getWeek, week1)) .or(wrapper2 -> wrapper2.eq(DwSubjectDataInfoWw::getYear, year2).le(DwSubjectDataInfoWw::getWeek, week2))); } queryWrapper.orderByDesc(DwSubjectDataInfoWw::getYear); queryWrapper.orderByDesc(DwSubjectDataInfoWw::getWeek); if (StrUtil.isNotEmpty(cityName)) { queryWrapper.eq(DwSubjectDataInfoWw::getCityName, cityName); } if (StrUtil.isNotEmpty(userNetType)) { queryWrapper.eq(DwSubjectDataInfoWw::getUserNetType, userNetType); } if (StrUtil.isNotEmpty(moduleName)) { queryWrapper.eq(DwSubjectDataInfoWw::getModuleName, moduleName); } //搜索条件可以是专题中文名或英文名 if (StrUtil.isNotEmpty(keyWord)) { queryWrapper.and(wrapper -> wrapper.like(DwSubjectDataInfoWw::getSubjectCname, keyWord).or().like(DwSubjectDataInfoWw::getSubjectEname, keyWord)); } try { Page list = dwSubjectDataInfoWwService.page(page, queryWrapper); return AjaxResult.success(list); } catch (Exception e) { logger.error("获取分周专题数据列表错误,错误信息为:", e); return AjaxResult.error(); } 下面是根据条件生成的SQL语句
WHERE ( ( (year = ? AND week >= ?) OR (year = ? AND week <= ?) ) AND city_name = ? AND user_net_type = ? AND module_name = ? AND ( subject_cname LIKE ? OR subject_ename LIKE ? ) )ORDER BY year DESC, week DESC
LambdaQueryWrapper 常用条件

感谢各位的阅读,以上就是"lambdaQueryWrapper多条件嵌套查询方法是什么"的内容了,经过本文的学习后,相信大家对lambdaQueryWrapper多条件嵌套查询方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
条件
查询
专题
方法
年份
日期
内容
江苏
江苏省
学习
中文名
就是
所在
数据
错误
问题
中文
英文
参数
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司简介
互联网医疗科技
智慧科技互联网
科技互联网的估值
互联网金融科技公司干啥的
互联网校园科技培训
互联网科技大奖都有哪些公司
米聚互联网科技南京有限公司排面
中国科技创新与世界互联网大会
互联网新科技动漫ppt素材
迪庆互联网科技招生
恒生互联网科技业指数调整周期
互联网时代的科技公司
互联网金融科技元年
互联网科技收购价值
福仕德教育科技互联网
安徽零酒互联网科技有限公司
互联网科技创新方面的资料
互联网企业和网络科技有限公司
前海云享互联网科技
广东万易互联网科技有限公司惠州分公司
远信互联网科技
互联网科技媒体
奇酷互联网络科技
甘肃拓世互联网科技有限公司
海南购全球互联网科技
成都玖崟互联网科技有限公司乐商圈怎么样
烟台灵鸽互联网科技有限公司
南京一网一红互联网科技有限公司
福建互联网展示科技馆设计