在使用mybatis-plus条件构造器的likeLeft和likeRight方法时,发现和自己想的恰恰相反!下面介绍了like、likeLeft、likeRight三种方式的不同!
1. like
在填入参数的左右两侧都加上通配符%
举例:Person类中有一个属性为date,下面是具体的值:
2022010101
2022010203
2022010302
2022020102
2022020204
2022020301
wrapper = Wrappers.lambdaQuery(Person.class).like(Person::getDate, '01');
this.list(wrapper);
上面会查出所有包含01的数,结果为:
2022010101
2022010203
2022010302
2022020102
2022020301
2. likeLeft
在填入参数的左侧加上通配符%
举例:Person类中有一个属性为date,下面是具体的值:
2022010101
2022010203
2022010302
2022020102
2022020204
2022020301
wrapper = Wrappers.lambdaQuery(Person.class).likeLeft(Person::getDate, '01');
this.list(wrapper);
上面会查出所有以01结尾的数,结果为:
2022010101
2022020301
3. likeRight
在填入参数的右侧加上通配符%
举例:Person类中有一个属性为date,下面是具体的值:
2022010101
2022010203
2022010302
2022020102
2022020204
2022020301
wrapper = Wrappers.lambdaQuery(Person.class).likeRight(Person::getDate, '202201');
this.list(wrapper);
上面会查出所有以202201开头的数,结果为:
2022010101
2022010203
2022010302
4. 查看MP的源码
public static String concatLike(Object str, SqlLike type) {
switch (type) {
case LEFT:
return "%" + str;
case RIGHT:
return str + "%";
default:
return "%" + str + "%";
}
}