QuertWrapper and 和or 用法

1.使用 MyBatis Plus 实现上述 SQL 查询条件可以按照以下步骤进行:

创建一个 QueryWrapper 对象:
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
使用 eq 方法添加等于条件和 and 条件:
queryWrapper.eq("age", 18)
            .eq("name", "张三")
            .and(wrapper -> wrapper.eq("sex", "男").or().eq("sex", "女"));
执行查询操作:
List<Entity> result = entityMapper.selectList(queryWrapper);

完整示例代码如下:

QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 18)
            .eq("name", "张三")
            .and(wrapper -> wrapper.eq("sex", "男").or().eq("sex", "女"));

List<Entity> result = entityMapper.selectList(queryWrapper);

在上述示例中,我们首先创建了一个 QueryWrapper 对象,并使用 eq 方法添加了两个等于条件。然后使用 and 方法添加了一个 and 条件,其中嵌套了一个 or 条件。

最后,我们使用 entityMapper 的 selectList 方法执行查询操作,并将查询结果存储在 result 变量中。

2.在 MyBatis Plus 中,可以使用 QueryWrapper 来构建 SQL 查询条件,包括 and 和 or 的逻辑关系。下面是一些示例代码,演示了如何在 MyBatis Plus 中使用 and 和 or:

QueryWrapper<MessageAudit> queryWrapper = new QueryWrapper<>();

queryWrapper.eq("status", 1)  // 添加等于条件 status = 1
    .and(i -> i.eq("type", "email").or().eq("type", "sms"))  // 添加 and 条件 type = 'email' or type = 'sms'
    .or(i -> i.between("create_time", "2023-01-01", "2023-12-31").or().isNull("create_user_id"));  // 添加 or 条件 create_time between '2023-01-01' and '2023-12-31' or create_user_id is null

在上面的示例中,我们首先创建了一个 QueryWrapper 对象,并使用 eq 方法添加了一个等于条件。接着使用 and 方法添加了一个 and 条件,其中嵌套了一个 or 条件。最后使用 or 方法添加了一个 or 条件,其中嵌套了两个条件:一个是使用 between 方法表示时间范围条件,另一个是使用 isNull 方法表示字段为空条件。

相关推荐

  1. QuertWrapper and or

    2024-02-01 12:20:01       60 阅读
  2. SQL 的 AND、OR NOT 运算符:条件筛选的高级

    2024-02-01 12:20:01       61 阅读
  3. golang os

    2024-02-01 12:20:01       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 12:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 12:20:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 12:20:01       82 阅读
  4. Python语言-面向对象

    2024-02-01 12:20:01       91 阅读

热门阅读

  1. 私有云+云原生能力模型

    2024-02-01 12:20:01       51 阅读
  2. docker-compose部署开源培训系统playedu

    2024-02-01 12:20:01       57 阅读
  3. ArrayList和LinkedList 区别

    2024-02-01 12:20:01       52 阅读
  4. 【Android】屏幕锁

    2024-02-01 12:20:01       62 阅读
  5. C/C++编程-工程实践-MDK工具学习

    2024-02-01 12:20:01       57 阅读
  6. 学习前端之HTML5中的`<!DOCTYPE>`声明有什么意义

    2024-02-01 12:20:01       53 阅读
  7. pinia---状态管理工具

    2024-02-01 12:20:01       51 阅读
  8. 【AutoML】AutoKeras 训练数据收集并入库

    2024-02-01 12:20:01       52 阅读
  9. 51单片机温湿度数据管理系统

    2024-02-01 12:20:01       54 阅读
  10. 【NGINX】NGINX如何阻止指定ip的请求

    2024-02-01 12:20:01       52 阅读