mybatisplus where QueryWrapper加括號嵌套查詢方式
更新時間:2022年01月11日 11:34:49 作者:職業(yè)禿頭程序員
這篇文章主要介紹了mybatisplus where QueryWrapper加括號嵌套查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
where QueryWrapper加括號嵌套查詢
之前的代碼是這個樣子的:
QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>();
? ? wrapper.eq("phoneNumber", phone);
? ? if (StringUtils.isEmpty(scenetype)){
? ? ? ? ? ? wrapper.isNull("scenetype").or().eq("scenetype", "");
? ? }
? ? wrapper.eq("delFlag", "0");相對應(yīng)的SQL語句如下:
WHERE( phoneNumber = 156****8888 AND scenetype IS NULL OR scenetype = "" AND delFlag = 0)
這并不是我想要的sql語句,查詢的數(shù)據(jù)也不正確,對scenetype的查詢應(yīng)該是括起來的,滿足其一條件即可,也就是這樣:
WHERE( phoneNumber = 156****8888 AND (scenetype IS NULL OR scenetype = "") AND delFlag = 0)
相對應(yīng)的代碼應(yīng)該這樣寫才對:
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查詢語句加括號(.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);等價sql
SELECT id FROM t_entity WHERE (id <> ? AND (name = ? OR mark = ?))
每個and相當(dāng)于一個括號
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- MybatisPlus使用Wrapper實現(xiàn)條件查詢功能
- mybatis-plus自帶QueryWrapper自定義sql實現(xiàn)復(fù)雜查詢實例詳解
- Mybatis-plus動態(tài)條件查詢QueryWrapper的使用案例
- MyBatisPlus-QueryWrapper多條件查詢及修改方式
- mybatisplus如何在xml的連表查詢中使用queryWrapper
- MybatisPlus使用queryWrapper如何實現(xiàn)復(fù)雜查詢
- MyBatis-Plus實現(xiàn)2種分頁方法(QueryWrapper查詢分頁和SQL查詢分頁)
- mybatis-plus QueryWrapper自定義查詢條件的實現(xiàn)
- 詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全
- Mybatis Plus Wrapper查詢某幾列的方法實現(xiàn)
相關(guān)文章
基于Properties類操作.properties配置文件方法總結(jié)
這篇文章主要介紹了Properties類操作.properties配置文件方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
spring boot使用RabbitMQ實現(xiàn)topic 主題
本篇文章主要介紹了spring boot使用RabbitMQ實現(xiàn)topic 主題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
如何利用java中String類的substring()字符串截取最后一個字符
Java中的String是不可變的類型,因此substring()方法并不會改變原字符串,而是返回了一個新的字符串,這篇文章主要介紹了如何利用java中String類的substring()字符串截取最后一個字符,需要的朋友可以參考下2023-11-11
Spring事務(wù)管理下synchronized鎖失效問題的解決方法
這篇文章主要給大家介紹了關(guān)于Spring事務(wù)管理下synchronized鎖失效問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03

