第七題用nested的優(yōu)勢(shì)是什么呢,用and也能實(shí)現(xiàn)
/**
? ? ?* 需求:(年齡小于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呢,這個(gè)方法有什么優(yōu)點(diǎn)嗎?
2021-03-31
使用and,他默認(rèn)會(huì)給你加and關(guān)鍵字,但是如果and出現(xiàn)在第一位,會(huì)給你去掉where后的and,感覺跟nested沒啥區(qū)別,nested的官方解釋是“正常嵌套 不帶 AND 或者 OR”