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

目录

    • 概述
    • 1、eq:等于条件
    • 2、ne:不等于条件
    • 3、gt:大于条件
    • 4、ge:大于等于条件
    • 5、lt:小于条件
    • 6、le:小于等于条件
    • 7、like:模糊查询条件
    • 8、notLike:不包含关键字的模糊查询条件
    • 9、左模糊查询条件
    • 10、右模糊查询条件
    • 11、isNull:字段为 NULL 的条件
    • 12、isNotNull:字段不为 NULL 的条件
    • 13、in:包含在给定集合中的条件
    • 14、notIn:不包含在给定集合中的条件
    • 15、between / notBetween:范围条件
    • 16、apply:自定义 SQL 片段
    • 17、nested:嵌套条件
    • 18、or:或条件
    • 19、and:与条件
    • 20、orderBy:排序条件
    • 22、group by:分组条件
    • 23、having:分组后的条件
    • 24、exists:存在子查询条件
    • 25、notExists:不存在子查询条件
    • 26、last:拼接 SQL 最后部分
    • 27、复杂条件组合:

概述

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));

你可能感兴趣的:(Java开发,数据库,sql,mybatis,mybatis-plus)