MybatisPlus中使用条件构造器.or()

使用mybatis plus时,使用.or()去拼接查询条件时

错误的示范

studentService.list(new QueryWrapper<Student>().like("name", name).or().like("add", addr))

生成的查询语句是

SELECT id,name,addr FROM Student WHERE is_delete=0 AND name LIKE '%王%' OR addr LIKE '%上%';

这个时候就会发现 is_delete=0 和 or 成并列的条件了,如果一个文件被删了 但是addr为“上”就会被查出来,这是不被允许的



正确的示范

studentService.list(new QueryWrapper<Student>().and(wrapper->wrapper.like("name", name).or().like("age", age)))

生成的查询语句是

SELECT id,name,addr FROM Student WHERE is_delete=0 AND (name LIKE '%王%' OR addr LIKE '%上%');

这个时候会给 or 并列的条件加上一个括号,如果 is_delete=0 的话就会过滤掉

猜你喜欢

转载自blog.csdn.net/weixin_45121502/article/details/106587966
今日推荐