我的字符串参数是这样的:'(1,2,3,4)'
我想对此进行迭代
SELECT * FROM table WHERE value IN #{myparameter}
我该怎么做?
答案 0 :(得分:0)
您可以像这样将值逐字输入查询中:
SELECT * FROM table WHERE value IN ${myparameter}
但是请注意,这不使用准备好的语句参数。它具有不使用准备好的语句的所有缺点,即:它不是类型保存的,容易受到SQL注入的影响,需要转义等。
您最好将字符串转换为列表,然后以类型安全的方式生成查询:
SELECT *
FROM table
WHERE value IN
<foreach item="item" index="index" collection="myparameter"
open="(" separator="," close=")">
#{item}
</foreach>
myparameter
应该是Collection
列类型的value
。