第七題用nested的優勢是什么呢,用and也能實現
/**
? ? ?* 需求:(年齡小于40或郵箱不為空)并且名字為王姓
? ? ?* 條件:(age<40 or email is not null) and name like '王%'
? ? ?* sql:SELECT * FROM mp_user WHERE (name LIKE '王%' AND ((age < 40 OR email IS NOT NULL)))
? ? ?*/
? ? @Test
? ? public void selectByWrapper7(){
? ? ? ? QueryWrapper<User> queryWrapper = Wrappers.query();
? ? ? ? queryWrapper.and(qw->qw.lt("age",40).or().isNotNull("email"))
? ? ? ? ? ? ? ? .likeRight("name","王");
? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);
? ? ? ? userList.forEach(System.out::println);
? ? }
老師,我用的and也可以,為什么要用nested呢,這個方法有什么優點嗎?
2021-03-31
使用and,他默認會給你加and關鍵字,但是如果and出現在第一位,會給你去掉where后的and,感覺跟nested沒啥區別,nested的官方解釋是“正常嵌套 不帶 AND 或者 OR”