mybatisPlus关于and和or的语法

柔情只为你懂 2022-11-12 13:55 286阅读 0赞

最近在使用MyBatis Plus,发现在拼接条件的时候,and和or会出问题
比如下面这种

  1. QueryWrapper<User> userWrapper = new QueryWrapper<User>();
  2. userWrapper.eq("name", name);
  3. userWrapper.eq("pwd", pwd).or().eq("phone", phone);

这种写法拼出来的SQL语句是这样的

  1. select * from user where (name = ? and pwd= ? or phone = ?)

这样子是肯定不行的,于是去官网查询,发现正确的写法是这样的

  1. QueryWrapper<User> userWrapper = new QueryWrapper<User>();
  2. userWrapper.eq("name", name);
  3. userWrapper.and(wrapper -> wrapper.eq("pwd", pwd).or().eq("phone", phone));

select * from user where name = ? and ( pwd= ? or phone = ?)

发表评论

表情:
评论列表 (有 0 条评论,286人围观)

还没有评论,来说两句吧...

相关阅读

    相关 AND & OR

    AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。 AND 和 OR 运算符 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 如果

    相关 and or php,AND OR

    \\ AND OR 上面是基础的Where语句,下面看一下复杂一点的 你可以使用"AND" 或 "OR" 来拼接非常复杂的SQL语句 ~~~ namespace Act