mybatis-plus QueryWrapper中or,and的使用及說明
QueryWrapper中or,and使用
這兩天開發(fā)使用mybatisPlus的QueryWrapper組件時(shí)遇到一個(gè)問題,功能是開發(fā)一個(gè)列表,因?yàn)樯婕暗接脩艚巧珯?quán)限所以有個(gè)固定的查詢條件
queryWrapper.eq("user_id", userInfo.getUserId);列表中還要同時(shí)模糊查詢多個(gè)字段
所以我又增加了下面的語句
if(StringUtils.isNotBlank(name)) {
queryWrapper.like("user_name", name)
.or()
.like("user_admin_name",name );;
}當(dāng)這兩個(gè)條件單獨(dú)出現(xiàn)的時(shí)候查詢都是沒有問題,但是當(dāng)兩個(gè)條件同時(shí)出現(xiàn),就會(huì)發(fā)現(xiàn)查詢不是當(dāng)前角色的數(shù)據(jù)也會(huì)展示出來。
經(jīng)過排查
發(fā)現(xiàn)queryWrapper 的where執(zhí)行語句是這樣的
where (user_id='1' and user_name like '%葉%' or user_admin_name like '%葉%')
這就導(dǎo)致只要where后面的條件存在or的話
只要滿足條件了,都會(huì)查詢出結(jié)果集,后來經(jīng)過查詢文檔,在QueryWrapper組件中找到了and()方法的使用,即可達(dá)到我們的期望值
queryWrapper.and(wq -> {
// 拼接sql
wq.like("user_name", name)
.or()
.like("user_admin_name",name);
});where (user_id='1' and (user_name like '%葉%' or user_admin_name like '%葉%'))
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- mybatis-plus QueryWrapper and or 連用并且實(shí)現(xiàn)分頁
- Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解
- Mybatis-plus中QueryWrapper的多種用法小結(jié)
- mybatis-plus自帶QueryWrapper自定義sql實(shí)現(xiàn)復(fù)雜查詢實(shí)例詳解
- Mybatis-plus動(dòng)態(tài)條件查詢QueryWrapper的使用案例
- MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解
相關(guān)文章
Redis+Caffeine實(shí)現(xiàn)兩級(jí)緩存的教程
這篇文章主要介紹了Redis+Caffeine實(shí)現(xiàn)兩級(jí)緩存的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
Mybatis?plus邏輯刪除注解@TableLogic的使用
本文主要介紹了Mybatis?plus邏輯刪除注解@TableLogic,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Javacsv實(shí)現(xiàn)Java讀寫csv文件
這篇文章主要為大家詳細(xì)介紹了Javacsv實(shí)現(xiàn)Java讀寫csv文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07

