You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正SQL查询:排除指定列表且6月创建的记录

修正SQL查询以保留符合条件的记录

你的原查询逻辑错误在于用AND同时限制了“日期不在6月”和“LIST不在prop1/2/3”,这会误删LIST属于prop1/2/3但日期不在6月的记录。我们需要排除的是同时满足“LIST为prop1/2/3”和“创建日期在2024年6月”的记录,因此可以通过以下两种方式修正:

写法一:直接取反组合条件

用NOT包裹需要排除的组合条件,逻辑更直观:

SELECT * FROM table 
WHERE NOT (
    `LIST` IN ('prop1','prop2','prop3') 
    AND `created_date` BETWEEN '2024-06-01' AND '2024-06-30'
)

写法二:利用德摩根定律转换逻辑

将NOT (A AND B)等价转换为NOT A OR NOT B,效果完全一致:

SELECT * FROM table 
WHERE `LIST` NOT IN ('prop1','prop2','prop3') 
OR `created_date` NOT BETWEEN '2024-06-01' AND '2024-06-30'

验证结果

针对你的测试数据:

  • email1、email2、email4:同时满足LIST在目标集合且日期在6月 → 被排除
  • email3:LIST在目标集合但日期不在6月 → 被保留
    完全符合你的期望输出。

内容的提问来源于stack exchange,提问作者John Beasley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 08:32:04