前幾天來一需求,實現過程當中須要修改一個底層的查詢接口,具體修改就是在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」纔是字符串,二者不一樣