LambdaQueryWrapper查询and里面俩个or
时间: 2023-11-17 21:02:29 浏览: 30
LambdaQueryWrapper查询and里面两个or是指在查询条件中使用LambdaQueryWrapper的and方法将多个or条件组合在一起,例如:
```
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.and(i -> i.or(j -> j.eq(User::getName, "张三").eq(User::getAge, 20))
.or(j -> j.eq(User::getName, "李四").eq(User::getAge, 30)));
List<User> userList = userService.list(lambdaQueryWrapper);
```
以上代码中,and方法将两个or条件组合在一起,查询结果为姓名为张三且年龄为20或姓名为李四且年龄为30的用户列表。
相关问题
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条件构造器or里面拼接and
可以使用LambdaQueryWrapper的or和and方法来实现条件构造器中的or里面拼接and的功能。具体实现方式如下:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "John")
.or(i -> i.eq(User::getAge, 20).eq(User::getGender, "Male"))
.or(i -> i.eq(User::getAge, 25).eq(User::getGender, "Female"));
```
上述代码中,我们首先使用eq方法设置了一个条件,然后使用or方法添加了一个or条件,其中传入了一个Lambda表达式,该Lambda表达式中使用了and方法添加了两个and条件。这样就实现了在or条件里面拼接and条件的功能。