问题描述
<when>标签的条件满足,但没有执行
<select>
SELECT COUNT(1) FROM TABLE1 WHERE ID_NO = #{idNo}
<choose>
<when test="flag == '0'">
AND CONT_ADDR LILE CONCAT(#{contAddr},'%')
</when>
<when test="flag == '1'">
AND CONT_ADDR NOT LILE CONCAT(#{contAddr},'%')
</when>
<otherwise></otherwise>
</choose>
</select>
原因分析
解决方法
把<when>中单引号和双引号互换,即外层单引号,内层双引号
<select>
SELECT COUNT(1) FROM TABLE1 WHERE ID_NO = #{idNo}
<choose>
<when test='flag == "0"'>
AND CONT_ADDR LILE CONCAT(#{contAddr},'%')
</when>
<when test='flag == "1"'>
AND CONT_ADDR NOT LILE CONCAT(#{contAddr},'%')
</when>
<otherwise></otherwise>
</choose>
</select>