Wrapper可以构造的复杂查询条件汇总

概述

MyBatis-Plus 中的 Wrapper 类可以用于构造复杂的查询条件,以便于生成更灵活的 SQL 查询语句。下面总结了一些常
见的 Wrapper 查询条件

1、eq:等于条件

queryWrapper.eq("column_name", value);

2、ne:不等于条件

queryWrapper.ne("column_name", value);

3、gt:大于条件

queryWrapper.gt("column_name", value);

4、ge:大于等于条件

queryWrapper.ge("column_name", value);

5、lt:小于条件

queryWrapper.lt("column_name", value);

6、le:小于等于条件

queryWrapper.le("column_name", value);

7、like:模糊查询条件

queryWrapper.like("column_name", "keyword");

8、notLike:不包含关键字的模糊查询条件

wrapper.notLike("column_name", "keyword");

9、左模糊查询条件

queryWrapper.likeLeft("column_name", "keyword");

10、右模糊查询条件

queryWrapper.likeRight("column_name", "keyword");

11、isNull:字段为 NULL 的条件

queryWrapper.isNull("column_name");

12、isNotNull:字段不为 NULL 的条件

queryWrapper.isNotNull("column_name");

13、in:包含在给定集合中的条件

queryWrapper.in("column_name", value1, value2);

14、notIn:不包含在给定集合中的条件

queryWrapper.notIn("column_name", value1, value2);

15、between / notBetween:范围条件

queryWrapper.between("column_name", minValue, maxValue);

queryWrapper.notBetween("column_name", minValue, maxValue);

16、apply:自定义 SQL 片段

queryWrapper.apply("column_name = {0}", value);

17、nested:嵌套条件

queryWrapper.nested(i -> i.eq("column1", value1).or().eq("column2", value2));

18、or:或条件

queryWrapper.or(i -> i.eq("column1", value1).eq("column2", value2));

19、and:与条件

queryWrapper.and(i -> i.eq("column1", value1).eq("column2", value2));

20、orderBy:排序条件

queryWrapper.orderByAsc("column_name1", "column_name2");
queryWrapper.orderByDesc("column_name1", "column_name2");

22、group by:分组条件

wrapper.groupBy("column1", "column2");

23、having:分组后的条件

wrapper.having("SUM(column1) > 100");

24、exists:存在子查询条件

wrapper.exists("SELECT 1 FROM other_table ot WHERE ot.column_name = table_name.column_name");

25、notExists:不存在子查询条件

wrapper.notExists("SELECT 1 FROM other_table ot WHERE ot.column_name = table_name.column_name");

26、last:拼接 SQL 最后部分

wrapper.last("LIMIT 10");

27、复杂条件组合:

LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.likeRight(User::getName, "A")
       .or()
       .likeLeft(User::getEmail, "@gmail.com")
       .and(qw -> qw.gt(User::getAge, 25).lt(User::getAge, 35));
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值