Mybatis 使用 in 查询就比较简单了,如
字段 in
<foreach item="item" index="index" collection="inStr" open="(" separator="," close=")">
#{item}
</foreach>
上面写法是没有问题的,但是如果上面的字段是json里面的一个key属性这种写法mybatis就查询不出数据,但是在Navicat里可以查询出数据,举例如下
tmi.formValues -> '$.values."f50a69f190a34000886658c333e863ea-link"' IN
<foreach item="item" index="index" collection="inStr" open="(" separator="," close=")">
#{item}
</foreach>
上面这种要通过json里的一个key字段mybatis是查询不出数据的。
解决办法:
更改sql语句写法,用自带的json函数去查询,示例如下:
AND JSON_UNQUOTE(JSON_EXTRACT(tmi.formValues, '$.values."f50a69f190a34000886658c333e863ea-link"')) IN
<foreach item="item" index="index" collection="inStr" open="(" separator="," close=")">
#{item}
</foreach>