今天拼接了一个使用mybatisplus拼接了一个sql不是很难但是遇见了 or 这种情况,记录一下
sql如下:
Integer count =
orderTradeService.lambdaQuery()
.eq(OrderTrade::getMemberId, uId)
.or()
.eq(OrderTrade::getNeedMemberId, uId)
.eq(OrderTrade::getStatus, 40)
.or()
.eq(OrderTrade::getStatus, 70)
.ge(OrderTrade::getCreateTime,item.getCreateTime())
.count();
1、与or 相对应的还有一个and 其实就是我们平时的多字段查询
and 查询时同时满足a 和 b
LambdaQueryWrapper<Object> and = new LambdaQueryWrapper<>().eq(A,a).eq(B,b);
or 查询时满足a 或 b
LambdaQueryWrapper<Object> and = new LambdaQueryWrapper<>().eq(A,a).or().eq(B,b);
2、时间的比较,就是如何拼接比较大小
原符号 < <= > >= <>
对应函数 lt() le() gt() ge() ne()
Mybatis-plus写法: queryWrapper.ge("create_time", localDateTime);
Mybatis写法: where create_time >= #{localDateTime}