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語句如下:
WHERE( phoneNumber = 156****8888 AND scenetype IS NULL OR scenetype = "" AND delFlag = 0)
這并不是我想要的sql語句,查詢的數(shù)據(jù)也不正確,對(duì)scenetype的查詢應(yīng)該是括起來的,滿足其一條件即可,也就是這樣:
WHERE( phoneNumber = 156****8888 AND (scenetype IS NULL OR scenetype = "") AND delFlag = 0)
相對(duì)應(yīng)的代碼應(yīng)該這樣寫才對(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查詢語句加括號(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種分頁方法(QueryWrapper查詢分頁和SQL查詢分頁)
- mybatis-plus QueryWrapper自定義查詢條件的實(shí)現(xiàn)
- 詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全
- Mybatis Plus Wrapper查詢某幾列的方法實(shí)現(xiàn)
相關(guān)文章
Java計(jì)時(shí)器工具StopWatch的具體使用
計(jì)時(shí)器在很多地方都可以用到,本文主要介紹了Java計(jì)時(shí)器工具StopWatch的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
基于Properties類操作.properties配置文件方法總結(jié)
這篇文章主要介紹了Properties類操作.properties配置文件方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
spring boot使用RabbitMQ實(shí)現(xiàn)topic 主題
本篇文章主要介紹了spring boot使用RabbitMQ實(shí)現(xiàn)topic 主題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
如何利用java中String類的substring()字符串截取最后一個(gè)字符
Java中的String是不可變的類型,因此substring()方法并不會(huì)改變?cè)址?而是返回了一個(gè)新的字符串,這篇文章主要介紹了如何利用java中String類的substring()字符串截取最后一個(gè)字符,需要的朋友可以參考下2023-11-11
Spring事務(wù)管理下synchronized鎖失效問題的解決方法
這篇文章主要給大家介紹了關(guān)于Spring事務(wù)管理下synchronized鎖失效問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03

