EntityWrapper在and中嵌套or语句
风情小皮球 人气:6在and条件中嵌套or语句
想要写一个类似如下的语句:
select * from table_1 where (coulmn_1 like '%XX%' or coulmn_1 like '%XX%') and del_flag='0'
但是在实际执行过程中,mybatisplus将其解析成了:
select * from table_1 where coulmn_1 like '%XX%' or coulmn_1 like '%XX%' and del_flag='0'
显然,这里由于没有括号,条件是不一样的。使用andNew代替and:
wrapper.andNew("del_flag='0'");
最后在日志中打印出的语句为:
select * from table_1 where (coulmn_1 like '%XX%' or coulmn_1 like '%XX%') and (del_flag='0')
andNew的作用就是另起一个and()!
EntityWrapper的一些接口说明
查询方式 | 说明 |
---|---|
setSqlSelect | 设置SELECT查询字段 |
where | WHERE语句,拼接 - WHERE条件 |
and | AND语句,拼接 - AND 字段=值 |
andNew | AND语句,拼接 - AND (字段=值) |
or | OR语句,拼接 - OR 字段=值 |
orNew | OR语句,拼接 - OR(字段=值) |
eq | 等于= |
allEq | 基于map内容等于= |
ne | 不等于<> |
gt | 大于> |
ge | 大于等于>= |
lt | 小于< |
le | 小于等于<= |
like | 模糊查询LIKE |
notLike | 模糊查询NOT LIKE |
in | IN查询 |
notin | NOT IN查询 |
isNull | NULL值查询 |
isNotNull | IS NOT NULL |
groupBy | 分组GROUP BY |
having | HAVING关键词 |
orderBy | 排序ORDER BY |
orderAsc | ASC排序ORDER BY |
orderDesc | DESC排序ORDER BY |
exists | EXISTS条件语句 |
notExists | NOT EXISTS条件语句 |
between | BETWEEN条件语句 |
notBetween | NOT BETWEEN条件语句 |
addFilter | 自由拼接SQL |
last | 拼接在最后,例如last(“LIMIT 1”) |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容