MybatisPlus QueryWrapper and or 连用
Posted cnsu-cmh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MybatisPlus QueryWrapper and or 连用相关的知识,希望对你有一定的参考价值。
QueryWrapper<User> userWrapper = new QueryWrapper<>();
String type = (String) map.get("type");
if(StringUtils.isNotBlank(type))
userWrapper.eq("is_admin", "admin".equals(type) ? true : false);
String keys = (String) map.get("key");
if(StringUtils.isNotBlank(keys))
userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys));
控制台sql打印为:
SELECT
id,
login_name AS loginName,
nick_name AS nickName,
password,
salt,
tel,
email,
locked,
is_admin AS adminUser,
icon,
create_by AS createId,
create_date AS createDate,
update_by AS updateId,
update_date AS updateDate,
del_flag AS delFlag,
remarks
FROM
sys_user
WHERE
is_admin = 0
AND (
login_name LIKE '%j%'
OR tel LIKE '%j%'
OR email LIKE '%j%'
)
切记不能丢了and
userWrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys)
userWrapper.eq("is_admin", "admin".equals(type) ? true : false);
这个条件是不带括号的
WHERE
is_admin = 0
AND login_name LIKE '%j%'
OR tel LIKE '%j%'
OR email LIKE '%j%'
or(Function<This, This> func), and(Function<This, This> func) 会为func返回的条件添加括号 or(sql...) and(...)
以上是关于MybatisPlus QueryWrapper and or 连用的主要内容,如果未能解决你的问题,请参考以下文章
MyBatisPlus查询对象转QueryWrapper工具类
MybatisPlus QueryWrapper and or 连用
MybatisPlus QueryWrapper and or 连用
MybatisPlus:中QueryWrapper<>().lambda使用(条件查询)
MybatisPlus:中QueryWrapper<>().lambda使用(条件查询)
MybatisPlus使用QueryWrapper调用queryWrapper.last(“limit 1“)时,多次请求该接口后,结尾多出一个“LIMIT 5”