mybatis-plus-QueryWrapper 如何写or效果的语句 以及如何给or加括号

   先说想要的结果

  希望mybatis-plus中QueryWrapper写法生成的sql语句中查询条件是 WHERE (( (LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ?) ) AND START_YEAR = ?)  红色部分加一个括号

 

  第一次尝试

        QueryWrapper<KjProjectList> queryWrapper = new QueryWrapper<>();
        queryWrapper .eq("LOGIN_ID", "admin");
        queryWrapper .or().eq("SHI_JI_LOGIN_ID", "admin"); 
        queryWrapper .eq("START_YEAR","2016");

这样写出来的where 条件是:WHERE ( LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ? AND START_YEAR = ?)  并没有在希望的地方增加一个括号

最终写法

        QueryWrapper<KjProjectList> queryWrapper = new QueryWrapper<>();
        queryWrapper .and((wrapper) -> {
            wrapper.eq("LOGIN_ID", "admin").or().eq("SHI_JI_LOGIN_ID", "admin");
        });
        queryWrapper .eq("START_YEAR","2016");

好成了where条件变成了:WHERE (( (LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ?) ) AND START_YEAR = ?)  虽然多加了一个括号但是期望的效果达到了。

 

资源丰富的的网盘资源:网盘资源大全! 推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!
posted @ 2021-09-23 19:03  万笑佛  阅读(9718)  评论(1编辑  收藏  举报