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

MySQL中NOT关键字替代方案 如何改写SQL语句得到相同执行结果

改写后的SQL语句

你不需要使用JOIN即可实现需求,直接通过德摩根定律转换布尔逻辑即可,改写后的语句如下:

SELECT * FROM mytable
WHERE col1 = 1
AND col1 <> col2
AND col3 <> 3;

转换逻辑说明

根据布尔代数的德摩根定律,NOT (A OR B) 的等价表达式为 NOT A AND NOT B,套用到你的原语句中即可完全去掉NOT关键字:

  • 原括号内的OR逻辑改为AND
  • 两个判断条件分别取反:col1 = col2 取反为 col1 <> col2,col3 = 3 取反为 col3 <> 3

该改写结果和原语句的查询逻辑完全一致,包括NULL值的处理规则也完全对齐:如果涉及的字段存在NULL值,两种写法的判断结果都会返回UNKNOWN,不会被WHERE条件命中,无需额外适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:04