做查询遇到一个坑,想用字符串去判断是否等于一个数字字符串"1",没报错但匹配不上,写法如下
<if test="taskIdType != null and taskIdType != '0' ">
and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')
</if>
正确写法如下
<if test="taskIdType != null and taskIdType != '0'.toString() ">
and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')
</if>
或
<if test='taskIdType != null and taskIdType != "0" '>
and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')
</if>
如果入参是数字类型的条件也不生效taskIdType=1下面这个条件也不生效
<if test="taskIdType != null and taskIdType != '' ">
and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')
</if>
本文探讨了在使用MyBatis进行SQL条件判断时遇到的一个常见问题:如何正确地使用字符串来判断数字类型参数,避免因类型不匹配导致的条件失效。通过对比错误和正确的代码示例,详细解析了解决方案。
2419

被折叠的 条评论
为什么被折叠?



