我是靠谱客的博主 独特台灯,这篇文章主要介绍Mybatis-Plus的 QueryWrapper中 AND 和OR条件运算逻辑,现在分享给大家,希望可以做个参考。

SQL中 OR条件左右只要有一个成立,就可以返回true结果,所以在和and使用得时候 ,OR必须要加上括号来使用。

 queryWrapper.and(Wrapper -> Wrapper.like("first_name", "nana").or().like("last_name ","nana"));
   queryWrapper.ge("actor_id",10);
    // 等同于   WHERE  actor_id > 10 AND   (first_name LIKE '%A%' OR last_name LIKE '%A%');
   
    
   queryWrapper.like("first_name", "nana").or().like("last_name ","nana");
   queryWrapper.ge("actor_id",10);
    // 等同于   WHERE  actor_id > 10 AND first_name LIKE '%A%' OR last_name LIKE '%A%';  这种写法是错误得
   
if (StringUtils.isNotBlank(vo.getTitle())) {
            //queryWrapper.like("mt.title", vo.getTitle()).or().like("mt.message", vo.getTitle()); 错误拼接
            queryWrapper.and(Wrapper -> Wrapper.like("mt.title", vo.getTitle()).or().like("mt.message", vo.getTitle()));
        }
        
        SELECT COUNT(1) FROM message AS m LEFT JOIN message_text AS mt ON m.message_id = mt.id LEFT JOIN (SELECT count(1) AS un_read_count, rec_id FROM message WHERE status = 0 GROUP BY rec_id) AS m1 ON m.rec_id = m1.rec_id WHERE (m.rec_id = ? AND relevance_message_type IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND mt.update_time <= ? AND mt.update_time >= ? AND 
   (mt.title LIKE ? OR mt.message LIKE ?) 
   AND m.deleted = ?) 

最后

以上就是独特台灯最近收集整理的关于Mybatis-Plus的 QueryWrapper中 AND 和OR条件运算逻辑的全部内容,更多相关Mybatis-Plus的内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(129)

评论列表共有 0 条评论

立即
投稿
返回
顶部