Mybatis <where>标签的小问题

我们都知道Mybatis的标签是可以自动去掉子句第一个and或者or的,具体如下:

 

如果没有的时候,我们如果name条件满足,就会出现如下的SQL语句:

select * from t_user where and name = 'CLAY';

很明显看出多了一个and,那么加上标签,它就会为我们自动去掉这个and,也就是第一个and。

那我们明白了这个前提,我们再看下一个SQL:

 

那按我们刚才说的,会去掉第一个and,那这个SQL语句不就变成了下面这样吗:

select * from t_user where del_flag = '0' name = 'CLAY';

但其实结果并没有去掉这个and,还是正常的:

select * from t_user where del_flag = '0' and name = 'CLAY';

这是因为标签去掉的是紧贴着where后面的and或者or,中间隔一个单词都不行。

我们再看看官网怎么说:

Mybatis <where>标签的小问题_第1张图片

你可能感兴趣的:(Java,mybatis,java,sql,where,动态SQL,1024程序员节)