场景: a表的device_tag_names存的是设备标签,多个用了逗号分隔,需求是设备标签多选,设备包含其中一个标签就要展示
sql如下: 需要用到 and ( or)
<if test="info.deviceTagNameList != null and info.deviceTagNameList.size() > 0">
and (
<foreach collection="info.deviceTagNameList" index="index" item="tag" separator="or" open="(" close=")">
<trim prefixOverrides="AND|OR" suffixOverrides="AND|OR">
or a.device_tag_names::TEXT like concat( '%',#{tag},'%')
</trim>
</foreach>
)
</if>