系統梳理 MySQL 四大類運算符,附示例與特殊行為(NULL 處理、除零、字符串比較)。
| 運算符 | 含義 | 示例 | 結果 |
|---|---|---|---|
| + | 加 | 6+4 | 10 |
| - | 減 | 6-4 | 2 |
| * | 乘 | 6*4 | 24 |
| / | 除(浮點) | 6/4 | 1.5000 |
| DIV | 整除 | 6 DIV 4 | 1 |
| % / MOD | 取模 | 6%4 | 2 |
除零:6/0、6%0 均返回 NULL,不報錯。
字段運算:SELECT sale*12 AS 年薪 FROM t_employee;
| 運算符 | 含義 | NULL 行為 |
|---|---|---|
| = | 等於 | NULL=NULL → NULL |
| <=> | 安全等於 | NULL<=>NULL → 1(真) |
| != / <> | 不等於 | 不可操作 NULL |
| > / >= / < / <= | 大小比較 | 不可操作 NULL |
關鍵差異:= 比較 NULL 結果為 NULL;<=> 可比較 NULL,NULL <=> NULL 為真(1)。
BETWEEN ... AND:範圍包含邊界。IS NULL / IS NOT NULL:NULL 判斷。IN (val1, val2...):集合成員。LIKE:模糊匹配,% 任意長度,_ 單字符。REGEXP:正則表達式匹配。| 字符 | 含義 |
|---|---|
| ^ | 行首 |
| $ | 行尾 |
| . | 任意單字符 |
| [abc] | 集合中任一字符 |
| [^abc] | 集合外任一字符 |
| str1|str2 | 或關係 |
| * | 前字符 0 或多次 |
| + | 前字符 1 或多次 |
| {n} | 前字符恰好 n 次 |
| {m,n} | 前字符 m~n 次 |
| 運算符 | 別名 | 真值表(1真 0假 NULL未知) |
|---|---|---|
| AND / && | 邏輯與 | 1&&1=1, 1&&0=0, 1&&NULL=NULL, 0&&NULL=0, NULL&&NULL=NULL |
| OR / || | 邏輯或 | 1||0=1, 0||NULL=NULL, 0||0=0 |
| NOT / ! | 邏輯非 | !1=0, !0=1, !NULL=NULL |
| XOR | 異或 | 1 XOR 0 = 1, 1 XOR 1 = 0, NULL XOR 1 = NULL |
| 運算符 | 含義 | 示例 | 結果(二進制) |
|---|---|---|---|
| & | 按位與 | 4 & 5 | 100 & 101 = 100 (4) |
| | | 按位或 | 4 | 5 | 100 | 101 = 101 (5) |
| ~ | 按位取反 | ~4 | ...111011 (負數補碼) |
| ^ | 按位異或 | 4 ^ 5 | 100 ^ 101 = 001 (1) |
| << | 左移 | 4 << 1 | 1000 (8) |
| >> | 右移 | 4 >> 1 | 10 (2) |
BIN(n) 顯示二進制表示。