MyBatis中使用NOT EXISTS替代IN和NOT IN
你可以将原始的语句改成使用NOT EXISTS的形式,同时去掉IN和NOT IN关键字。具体的修改如下所示:
AND NOT EXISTS (
SELECT 1
FROM your_table t
WHERE t.id = pee.id
AND t.id IN (
<foreach collection="ids" item="item" open="(" close=")" separator=",">
#{item, jdbcType=VARCHAR}
</foreach>
)
)
这样修改后,查询将会判断pee.id是否在ids集合中存在,如果不存在,则返回相应的结果。
原文地址: https://www.cveoy.top/t/topic/pVnn 著作权归作者所有。请勿转载和采集!