使用MyBatis时如何在循环中使用<bind>?

时间:2019-11-14 17:50:06

标签: mybatis

我想建立一个像“(('a%'之类的列或'b%'或...之类的列)”)和a,b等的sql。是集合中的元素。 所以我想出了这样的xml文件

<foreach item="item" collection="items" open="(" separator=" or " close=")">
<bind name="pattern" value="item + '%'" />
column like #{pattern}
</foreach

但是它没有达到我的预期。 sql就像“(('c%'之类的列或'c%'或之类的列)”),其中c是集合中的最后一个元素。 现在,我使用CONCAT函数来完成这项工作。

column like CONCAT(#{pattern},'%')

还有其他好的方法可以完成这项工作吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个已知的限制,即<bind />不能在<foreach />内部使用,并且有一个开放的issue
目前,使用CONCAT是一个不错的解决方法。