mybatisplus where QueryWrapper加括號(hào)嵌套查詢方式
where QueryWrapper加括號(hào)嵌套查詢
之前的代碼是這個(gè)樣子的:
QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>(); ? ? wrapper.eq("phoneNumber", phone); ? ? if (StringUtils.isEmpty(scenetype)){ ? ? ? ? ? ? wrapper.isNull("scenetype").or().eq("scenetype", ""); ? ? } ? ? wrapper.eq("delFlag", "0");
相對(duì)應(yīng)的SQL語(yǔ)句如下:
WHERE( phoneNumber = 156****8888 AND scenetype IS NULL OR scenetype = "" AND delFlag = 0)
這并不是我想要的sql語(yǔ)句,查詢的數(shù)據(jù)也不正確,對(duì)scenetype的查詢應(yīng)該是括起來(lái)的,滿足其一條件即可,也就是這樣:
WHERE( phoneNumber = 156****8888 AND (scenetype IS NULL OR scenetype = "") AND delFlag = 0)
相對(duì)應(yīng)的代碼應(yīng)該這樣寫(xiě)才對(duì):
QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>(); ? ? wrapper.eq("phoneNumber", phone); ? ? if(StringUtils.isEmpty(scenetype)) { ? ? ? ? ?wrapper.and( ? ? ? ? ? ? ? e -> e.isNull("scenetype") ? ? ? ? ? ? ? ? ? ? .or().eq("scenetype", "") ? ? ? ? ?); ? ? } ? ? wrapper.eq("delFlag", "0");
mybatisplus查詢語(yǔ)句加括號(hào)(.or(),.and())
java代碼:
QueryWrapper<Entity> wrapper = new QueryWrapper<>(); wrapper.ne("id", param.getId()) wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("mark", mark));? entityMapper.selectList(wrapper);
等價(jià)sql
SELECT id FROM t_entity WHERE (id <> ? AND (name = ? OR mark = ?))
每個(gè)and相當(dāng)于一個(gè)括號(hào)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MybatisPlus使用Wrapper實(shí)現(xiàn)條件查詢功能
- mybatis-plus自帶QueryWrapper自定義sql實(shí)現(xiàn)復(fù)雜查詢實(shí)例詳解
- Mybatis-plus動(dòng)態(tài)條件查詢QueryWrapper的使用案例
- MyBatisPlus-QueryWrapper多條件查詢及修改方式
- mybatisplus如何在xml的連表查詢中使用queryWrapper
- MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢
- MyBatis-Plus實(shí)現(xiàn)2種分頁(yè)方法(QueryWrapper查詢分頁(yè)和SQL查詢分頁(yè))
- mybatis-plus QueryWrapper自定義查詢條件的實(shí)現(xiàn)
- 詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全
- Mybatis Plus Wrapper查詢某幾列的方法實(shí)現(xiàn)
相關(guān)文章
spring boot2結(jié)合mybatis增刪改查的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于spring boot2結(jié)合mybatis增刪改查的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot2具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09java實(shí)現(xiàn)將結(jié)果集封裝到List中的方法
這篇文章主要介紹了java實(shí)現(xiàn)將結(jié)果集封裝到List中的方法,涉及java數(shù)據(jù)庫(kù)查詢及結(jié)果集轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07SpringSecurity實(shí)現(xiàn)自定義登錄方式
本文介紹自定義登錄流程,包括自定義AuthenticationToken、AuthenticationFilter、AuthenticationProvider以及SecurityConfig配置類(lèi),詳細(xì)解析了認(rèn)證流程的實(shí)現(xiàn),為開(kāi)發(fā)人員提供了具體的實(shí)施指導(dǎo)和參考2024-09-09關(guān)于Java?float和double精度范圍大小
這篇文章主要介紹了關(guān)于Java?float和double精度范圍大小,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類(lèi)型
這篇文章主要介紹了淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類(lèi)型,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12SpringBoot和Swagger結(jié)合提高API開(kāi)發(fā)效率
這篇文章主要介紹了SpringBoot和Swagger結(jié)合提高API開(kāi)發(fā)效率的相關(guān)資料,需要的朋友可以參考下2017-09-09IDEA新建bootstrap.yml文件不顯示葉子圖標(biāo)的問(wèn)題
這篇文章主要介紹了IDEA新建bootstrap.yml文件不顯示葉子圖標(biāo)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07