关于Mybatis-Plus的and()和or()的用法

开发中使用LambdaQueryChainWrapper时涉及到or()链接时,如下代码

new LambdaQueryChainWrapper<>(bybFileMapper) .eq(BybFile::getByb00, bcqFile.getBcq00()) .eq(BybFile::getByb05, bcqFile.getBcq01()) .likeRight(BybFile::getByb01, "IYQ") .eq(BybFile::getByb08, plant.toUpperCase()).or().eq(BybFile::getByb08, plant.toUpperCase()).one();

解析到的SQL为:

SELECT BYB01,BYB02,BYB03,BYB04,BYB05,BYB06,BYB07,BYB00,BYB08,BYB09,BYB10,BYB11,BYB12 FROM WEBCUS.BYB_FILE WHERE (BYB00 = ? AND BYB05 = ? AND BYB01 LIKE ? AND BYB08 = ? OR BYB08 = ?)

导致SQL执行结果不符合预期。

解决方法一:

new LambdaQueryChainWrapper<>(bybFileMapper) .eq(BybFile::getByb00, bcqFile.getBcq00()) .eq(BybFile::getByb05, bcqFile.getBcq01()) .likeRight(BybFile::getByb01, "IYQ") .eq(BybFile::getByb08, plant.toUpperCase()).or().eq(BybFile::getByb08, plant.toUpperCase())
.eq(BybFile::getByb00, bcqFile.getBcq00()) .eq(BybFile::getByb05, bcqFile.getBcq01()) .likeRigh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值