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