LambdaQueryWrapper 实现 WHERE (staff_number LIKE "%%" OR staff_phone LIKE "%%") AND staff_status = -1
时间: 2024-09-07 19:01:04 浏览: 34
Like-and-OrderBy.rar_sql like order by
`LambdaQueryWrapper`是MyBatis-Plus框架中的一个工具类,它提供了更加灵活和直观的方式来进行条件构造,尤其是在构建复杂的查询条件时。使用`LambdaQueryWrapper`,你可以链式地添加查询条件,而不需要手写SQL语句。
在你的例子中,你想要实现一个查询,其中`staff_number`或者`staff_phone`字段包含任意字符(使用`LIKE`操作符匹配任意字符串),同时`staff_status`字段等于某个特定值(-1)。在MyBatis-Plus中,可以使用`LambdaQueryWrapper`如下构建这个查询条件:
```java
LambdaQueryWrapper<Entity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(Entity::getStaffNumber, "%任意值%")
.or()
.like(Entity::getStaffPhone, "%任意值%")
.eq(Entity::getStaffStatus, -1);
```
这里,`Entity`类应该是一个实体类,其中包含了`staff_number`、`staff_phone`和`staff_status`这几个字段的映射。`getStaffNumber`、`getStaffPhone`和`getStaffStatus`是相应的getter方法。
上述代码首先调用`like`方法来构建`staff_number`的`LIKE`条件,然后通过调用`or`方法来实现`OR`逻辑,接着再次调用`like`方法来构建`staff_phone`的`LIKE`条件。最后,使用`eq`方法来添加`staff_status`等于-1的条件。
请确保你的MyBatis-Plus版本支持`LambdaQueryWrapper`中使用的API,以避免出现兼容性问题。
阅读全文