前几天来一需求,实现过程中需要修改一个底层的查询接口,具体修改就是在where中添加一个条件,由于这个底层SQL使用的地方太多,所以就想着是用if加一标识符做个判断,传一个只有我会使用的参数,然后动态加上需要拼接的where条件,第一次写法如下:
<if test="isSendState == '1' ">
and (RLT_STS_CD IN ('21','1','26'))
</if>
这里的isSendState就是我加的标识符,这个标识符我加了,但是条件没加上,巨坑,想不到为什么...
后来查阅各种资料才发现,mapper 中字符串做判断时需要使用双引号,即应修改为:
<if test='isSendState == "1" '>
and (RLT_STS_CD IN ('21','1','26'))
</if>
‘1'标识的是字符
“1”才是字符串,两者不同