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!