mybatis 如何切割字符串 查询多个值

前端传入k-v形式 "disCode" : “aa,bb,cc,dd”

disCode参数为:“aa,bb,cc,dd”, 需要把disCode分割出来,并进行遍历

错误写法:

这种写法会导致item取值为一条“aa,bb,cc,dd”没有切割,从而使得一条数据都查不出来

<select id="checkDisName" resultMap="BaseResultMap">
    select * from mc_dict_disease where id in (
    <if test="discode != null and disCode !=  ">
        <foreach collection="disCode" item="item" index="index" separator=",">
        #{item}
        </foreach>
    </if>
)
</select>

正确写法:

在collection属性中可以直接对字段调用.split(,)方法进行切割

<select id="checkDisName" resultMap="BaseResultMap">
    select * from mc_dict_disease where id in (
    <if test="discode != null and disCode !=  ">
        <foreach collection="disCode.split(,)" item="item" index="index" separator=",">
        #{item}
        </foreach>
    </if>
)
</select>

如需了解<foreach >中各参数的含义点击以下链接

本文借鉴于

经验分享 程序员 微信小程序 职场和发展