mybatis使用多个foreach遍历时遇到的坑

在使用MyBatis进行SQL查询时,若使用多个foreach遍历,若不加<if test=""></if>判断可能导致参数值无法传入。报错信息显示SQL语法错误,原因是第二个foreach的值未传入。解决方法是在每个foreach标签中添加条件判断,以确保值的正确传递。
摘要由CSDN通过智能技术生成

使用多个foreach进行遍历查询时,如果采用如下图的写法,不加上<if test=""></if>

进行判断的话,可能会出现后面的foreach的参数值传不进去的问题

 

 

报错信息如下:

SELECT DISTINCT d.xh 'xh', a.cardID 'cardID', c.name 'patientName', b.sectionid 'sectionid', b.name 'sectionName', d.news_title 'newsTitle', d.accessory 'accessory' FROM tb_gy_clinic a LEFT JOIN tb_gy_subscribe_card c ON a.cardID = c.cardID LEFT JOIN tb_gy_section b ON a.sectionId = b.sectionid LEFT JOIN tb_health_education d ON b.sectionid = d.sectionid WHERE d.type = ? AND a.cardID IN ( ? , ? , ? ) AND d.sectionid IN

### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'IN' 附近有语法错误。

; uncategorized

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值