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

MySQL 多字段非零判斷:使用 OR 條件查詢至少一項費用不為零的記錄

     編輯:程式設計疑難解答

MySQL 多字段非零判斷:使用 OR 條件查詢至少一項費用不為零的記錄

需求:查詢房租、電費、水費三字段中**任意一個不為 0** 的記錄 ID。

標準 SQL

SELECT id
FROM fees
WHERE rent <> 0
   OR electric <> 0
   OR water <> 0;

<> 與 != 在 MySQL 中等價,均表示「不等於」。

擴展:排除 NULL 值

若字段允許 NULL,NULL <> 0 結果為 UNKNOWN(不為 TRUE),該行不會被選中。若需將 NULL 視為 0,可用:

WHERE COALESCE(rent, 0) <> 0
   OR COALESCE(electric, 0) <> 0
   OR COALESCE(water, 0) <> 0;

性能提示

  • 三字段均建立單列索引,或建立聯合索引 (rent, electric, water)(MySQL 可用 Index Merge 優化 OR 條件)。
  • 若表極大且高頻查詢,考慮添加冗余字段 has_fee TINYINT,寫入時自動計算,查詢變為 WHERE has_fee = 1。

簡單的 OR 條件即可滿足多字段非零判斷,清晰且高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved