这篇文章主要讲解了“mybatisplus之怎么实现in嵌套sql”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatisplus之怎么实现in嵌套sql”吧!
mybatis-plus实现in嵌套sql
即sql中的 in (select column from table where 条件) 用法
/** * 根据部门 Id 和 QueryWrapper 查询 * * @param page * @param departId * @param queryWrapper * @return */ @Override public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) { LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda(); lambdaQueryWrapper.eq(SysUser::getDelFlag, "0"); lambdaQueryWrapper.insql(SysUser::getId, "SELECT user_id FROM sys_user_depart WHERE dep_id = '" + departId + "'"); return userMapper.selectPage(page, lambdaQueryWrapper); }
mybatis-plus sql中in的用法
示例:
@Select("<script>" + "SELECT * FROM node mn " + "WHERE n.state IN " + "<foreach item = 'state' collection = 'states' index = 'index' open = '(' separator = ',' close = ')'>" + "#{state}" + "</foreach>" + "</script>") List<Node> queryIdAndplanDay(List states);
sql语句需要使用<script></script>包起来,接着使用foreach进行循环,再将循环后得到的值放入sql中就ok了
item
:别名,就是遍历集合后用于接收数据的参数名,可自由更改collection
:集合名字,是你传入的集合参数名字,必须与参数名字相同separator
:分隔符,是遍历集合后组成参数的分隔符
感谢各位的阅读,以上就是“mybatisplus之怎么实现in嵌套sql”的内容了,经过本文的学习后,相信大家对mybatisplus之怎么实现in嵌套sql这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程之家,小编将为大家推送更多相关知识点的文章,欢迎关注!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。