首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL運算符全解析:算術/比較/邏輯/位運算 與 NULL值處理、類型轉換陷阱實戰

     編輯:MySQL 資料庫相關知識

算術運算符

運算符含義示例結果備註
+加a+529
-減a-519
*乘a*248
/除(浮點)a/38.0000保留4位小數
DIV整除a DIV 38等價 FLOOR(a/b)
%取模a%54負數規則:符號同被除數
MOD()取模函數MOD(a,5)4同%

關鍵:除數為0結果為NULL,不報錯。`SELECT 1/0 → NULL`

比較運算符

數值/字符串比較

a=24, a<12, a>40, a>=24, a<=24, a!=24, a<>24, a<=>24
  • =、<=>:等值比較。<=>(NULL安全等值):`NULL <=> NULL → 1`,`NULL = NULL → NULL`
  • !=、<>:不等值,同義
  • 字符串比較:`'ha' <> 'ha' → 0`,`'xa' = 'xa' → 1`

範圍/集合判斷

  • BETWEEN ... AND:包含邊界。`a BETWEEN 15 AND 30`
  • IN (val1, val2...):集合成員。`a IN (24,12,22)`
  • NOT BETWEEN、NOT IN:取反。注意NOT IN含NULL陷阱

模糊匹配

  • LIKE:`_`單字符,`%`任意長度。`'beijing' LIKE 'b%g' → 1`
  • NOT LIKE:取反

NULL判斷

  • IS NULL、IS NOT NULL:唯一合法NULL判斷方式
  • ISNULL()函數:等價IS NULL

邏輯運算符

短路求值:MySQL支持,`FALSE AND ...`不再評估右側。

位運算符(少用但強大)

  • & 按位與、`|` 按位或、`^` 按位異或、`~` 按位取反、`<<` 左移、`>>` 右移
  • 應用:權限位掩碼、標籤位圖、布隆過濾器底層

類型轉換隱式規則(避坑指南)

  • 數字比較字符串:字符串轉數字。`'123' = 123 → 1`,`'abc' = 0 → 1`(非數字開頭轉0)
  • 日期比較字符串:字符串轉日期
  • 最佳實踐:顯式CAST/CONVERT,避免隱式轉換導致索引失效與邏輯錯誤

運算符是SQL表達式的基因片段,精通優先級、類型轉換、NULL三值邏輯,能寫出正確、高性能、可維護的查詢條件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
運算符別名真值表(1真 0假 NULL未知)
AND / &&邏輯與1&&1=1, 1&&0=0, 1&&NULL=NULL, 0&&NULL=0
OR / ||邏輯或0||0=0, 1||NULL=1, 0||NULL=NULL
NOT / !邏輯非!1=0, !0=1, !NULL=NULL
XOR邏輯異或1 XOR 0=1, 1 XOR 1=0, NULL XOR 1=NULL