LambdaQueryWrapper拼接或者条件
时间: 2023-10-12 11:13:31 浏览: 180
在QueryWrapper 中可以使用 `or` 方法来拼接或者条件。具体使用方法如下:
```java
LambdaQueryWrapper<Entity> wrapper = Wrappers.lambdaQuery();
wrapper.eq(Entity::getStatus, 1)
.or()
.eq(Entity::getType, 2);
```
以上代码会生成如下 SQL 语句:
```sql
SELECT * FROM entity WHERE status = 1 OR type = 2;
```
其中,`eq` 方法用于生成等于条件,`or` 方法用于拼接或者条件。需要注意的是,在 `or` 方法之前需要先添加一个条件,否则会抛出异常。
相关问题
LambdaQueryWrapper拼接and和or查询
LambdaQueryWrapper是MyBatis-Plus提供的一个查询构造器,可以方便地进行复杂的查询操作。在LambdaQueryWrapper中,可以使用and和or方法来拼接查询条件。
1.使用and方法拼接查询条件:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").and(w -> w.eq(User::getAge, 20).or().eq(User::getAge, 30));
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,使用and方法将两个查询条件拼接在一起,查询条件为:name为"张三"并且(age为20或者age为30)。
2.使用or方法拼接查询条件:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").or(w -> w.eq(User::getAge, 20).eq(User::getAge, 30));
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,使用or方法将两个查询条件拼接在一起,查询条件为:name为"张三"或者age为20或者age为30。
LambdaQueryWrapper根据集合中的数据拼接或者条件
LambdaQueryWrapper 是 MyBatis-Plus 提供的一个查询构造器,可以通过它来构造查询条件。
要根据集合中的数据拼接或者条件,可以使用 LambdaQueryWrapper 的 in 方法。例如,假设有一个 List<Integer> ids 表示需要查询的 id 集合,可以这样构造查询条件:
```
List<Integer> ids = Arrays.asList(1, 2, 3);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(User::getId, ids);
List<User> userList = userMapper.selectList(queryWrapper);
```
这样就可以查询 id 在 1、2、3 中的用户了。如果要查询 id 不在集合中的用户,可以使用 notIn 方法:
```
List<Integer> ids = Arrays.asList(1, 2, 3);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(User::getId, ids);
List<User> userList = userMapper.selectList(queryWrapper);
```
除了 in 和 notIn 方法,LambdaQueryWrapper 还提供了一系列方法来构造查询条件,比如 eq、ne、gt、ge、lt、le 等等。可以根据实际需要选择适合的方法来构造查询条件。
阅读全文