首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL WHERE 條件邏輯優先級:將 (A AND B) OR C 改寫為 A AND (B OR C)

     編輯:程式設計綜合問答

原邏輯

WHERE 條件1 AND 條件2 OR 條件3
-- 解析為 (條件1 AND 條件2) OR 條件3

目標邏輯

WHERE 條件1 AND (條件2 OR 條件3)

等價改寫(分配律)

WHERE (條件1 AND 條件2) OR (條件1 AND 條件3)

若 條件1 是**必須滿足**的前提(如租戶 ID、軟刪除標記),此寫法語義清晰且利用索引:

SELECT * FROM t
WHERE tenant_id = 100
  AND (status = 1 OR status = 2);

驗證技巧

  • 用 EXPLAIN 觀察索引使用情況。
  • 單元測試覆蓋邊界:條件1真/假 × 條件2/3真假組合。|
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved