mybatis执行结果与数据库不同

在sqlserver中,使用开窗函数统计分组后的数据。
发现mybatis中的执行结果中g_num字段与在数据库中的结果不同,用mybatis在控制台中打印的sql语句在数据库运行,结果和在mybatis中的结果不同。

<select id="getFiterList" resultType="com.data.service.core.vo.AmzSalordbyodVo">
     SELECT FID,COUNT(FID) OVER (PARTITION BY
      <foreach collection="list" item="item" separator=","> 
      	${item} 
      </foreach> ) 
      as G_NUM, F_LOGNUMBER FROM T_WVRD_AMZ_SalOrdByOD
    </select>

原因
传递的分组入参条件是动态的,使用的#{}传递,这样sql会预编译,所以不知道具体的分组条件,会导致统计的结果不同
修改
将#{}改成${}即可

#{}可以防止sql注入,一般在where中使用
动态输入字段表名,字段等可以使用${}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值