你可以将原始的语句改成使用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集合中存在,如果不存在,则返回相应的结果。

MyBatis中使用NOT EXISTS替代IN和NOT IN

原文地址: https://www.cveoy.top/t/topic/pVnn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录