關(guān)于MyBatis Plus中使用or和and問(wèn)題
最近在使用MyBatis Plus,發(fā)現(xiàn)在拼接條件的時(shí)候,and和or會(huì)出問(wèn)題,比如下面這種
QueryWrapper userWrapper = new QueryWrapper();userWrapper.eq(“name”, name); userWrapper.eq(“pwd”,pwd).or().eq(“phone”, phone);
這種寫(xiě)法拼出來(lái)的SQL語(yǔ)句是這樣的:
select * from user where (name = ? and pwd= ? or phone = ?)
這樣子是肯定不行的,于是去官網(wǎng)查詢,發(fā)現(xiàn)正確的寫(xiě)法是這樣的
QueryWrapper userWrapper = new QueryWrapper();userWrapper.eq(“name”, name); userWrapper.and(wrapper ->wrapper.eq(“pwd”, pwd).or().eq(“phone”, phone));
select * from user where name = ? and ( pwd= ? or phone = ?)
補(bǔ)充:MyBatisPlus中and與or的連用
QueryWrapper<User> userWrapper = new QueryWrapper<>(); String type = (String) map.get('type'); if(StringUtils.isNotBlank(type)) { userWrapper.eq('is_admin', 'admin'.equals(type) ? true : false); } String keys = (String) map.get('key'); if(StringUtils.isNotBlank(keys)) { userWrapper.and(wrapper -> wrapper.like('login_name', keys).or().like('tel', keys).or().like('email', keys)); }
對(duì)應(yīng)打印的SQL語(yǔ)句為:
SELECT id, login_name AS loginName, is_admin AS adminUser, ... del_flag AS delFlag, remarks FROM sys_user WHERE is_admin = 0 AND ( login_name LIKE ’%j%’ OR tel LIKE ’%j%’ OR email LIKE ’%j%’ )
注意:
userWrapper.and(…)中的and為后面的條件加上了括號(hào),如果沒(méi)有and(),直接使用
userWrapper.like('login_name', keys).or().like('tel', keys).or().like('email', keys)
這一部分對(duì)應(yīng)的SQL語(yǔ)句是不會(huì)被括號(hào)包圍的(若使用or(…),同理);
2. and(…)中的wrapper -> wrapper,注意名稱需要相同。
到此這篇關(guān)于關(guān)于MyBatis Plus中使用or和and問(wèn)題的文章就介紹到這了,更多相關(guān)MyBatis Plus使用or和and內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. MYSQL(電話號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)2. MySql導(dǎo)出后再導(dǎo)入數(shù)據(jù)時(shí)出錯(cuò)問(wèn)題3. 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)4. MySQL decimal unsigned更新負(fù)數(shù)轉(zhuǎn)化為05. Sql Server 2000數(shù)據(jù)庫(kù)日志日益龐大的解決方法6. MySQL存儲(chǔ)過(guò)程例子(包含事務(wù)、參數(shù)、嵌套調(diào)用、游標(biāo)循環(huán)等)7. 用最簡(jiǎn)單的方法復(fù)制或遷移Oracle數(shù)據(jù)庫(kù)8. 教你在AIX上安裝IBM DB2 9版本的分區(qū)環(huán)境9. MySQL配置文件my.cnf優(yōu)化詳解10. Fluent Mybatis 批量更新的使用
