MybatisPlus中使用條件構造器.or()

使用mybatis plus時,使用.or()去拼接查詢條件時

錯誤的示範

studentService.list(new QueryWrapper<Student>().like("name", name).or().like("add", addr))

生成的查詢語句是

SELECT id,name,addr FROM Student WHERE is_delete=0 AND name LIKE '%王%' OR addr LIKE '%上%';

這個時候就會發現 is_delete=0 和 or 成並列的條件了,如果一個文件被刪了 但是addr爲“上”就會被查出來,這是不被允許的



正確的示範

studentService.list(new QueryWrapper<Student>().and(wrapper->wrapper.like("name", name).or().like("age", age)))

生成的查詢語句是

SELECT id,name,addr FROM Student WHERE is_delete=0 AND (name LIKE '%王%' OR addr LIKE '%上%');

這個時候會給 or 並列的條件加上一個括號,如果 is_delete=0 的話就會過濾掉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章