mybatis - 在 mybatis 中遍历字符串
问题描述
我的字符串参数是这样的:'(1,2,3,4)'
我想迭代这个
SELECT * FROM table WHERE value IN #{myparameter}
我怎样才能做到这一点?
解决方案
您可以像这样将值逐字放入查询中:
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
。
推荐阅读
- python - 根据条件填充数据框中的列
- azure - 配置 2 MFA 其他身份验证方法?
- python - PyQt6:AttributeError:类型对象'Qt'没有属性'white'
- python - colorama win32 调用对 win64 系统没有影响
- spring - Postman 不支持请求方法“POST”
- tensorflow - Tensorflow Object Detection API - 该API是否支持所有PASCAL VOC TAGS
- xml - Powershell选择属性存在的位置
- drawing - 有没有办法用代码控制我的 XY 绘图仪?
- powershell - 如何使用 Powershell 在网络密钥策略的证书路径验证设置上启用网络检索
- tcpdump - freeradius 接收 CDR 数据的问题