需求:查詢房租、電費、水費三字段中**任意一個不為 0** 的記錄 ID。
SELECT id
FROM fees
WHERE rent <> 0
OR electric <> 0
OR water <> 0;
<> 與 != 在 MySQL 中等價,均表示「不等於」。
若字段允許 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 條件即可滿足多字段非零判斷,清晰且高效。