MySQL 四大類運算符系統講解
MySQL 提供算術、比較、邏輯、位運算四大類運算符,掌握其語法與優先級能編寫高效、無歧義的 SQL。
一、算術運算符
| 運算符 | 含義 | 示例 | 結果 |
+ | 加法 | SELECT 10+5 | 15 |
- | 減法 | SELECT 10-5 | 5 |
* | 乘法 | SELECT 10*5 | 50 |
/ | 除法 | SELECT 10/5 | 2.0000 |
% / MOD | 取模 | SELECT 10%3 | 1 |
-- 實戰測試
CREATE TABLE tmp14 (num INT);
INSERT INTO tmp14 VALUES (64);
SELECT num, num+10, num-3+5, num+5-3, num+36.5 FROM tmp14;
SELECT num, num*2, num/2, num/3, num%3 FROM tmp14;
二、比較運算符(返回 1/0/NULL)
| 運算符 | 描述 | 特殊規則 |
= | 等於 | '2'=2 為真,隱式轉換 |
<>, != | 不等於 | |
<=, >=, <, > | 範圍比較 | 字符串按字典序 |
IS NULL / IS NOT NULL | 空值判斷 | = NULL 永遠為假 |
BETWEEN ... AND ... | 閉區間 | 4 BETWEEN 4 AND 6 為真 |
IN (val,...) | 集合包含 | NULL IN (...) 返回 NULL |
LIKE | 模糊匹配 | % 任意長度,_ 單字符 |
REGEXP | 正則匹配 | 'ssky' REGEXP '^s' |
三、邏輯運算符
| 運算符 | 別名 | 真值表關鍵點 |
NOT, ! | 非 | NOT NULL → NULL |
AND, && | 與 | 任一 0/NULL 則 0/NULL |
OR, || | 或 | 任一非 0 則 1 |
XOR | 異或 | 兩邊不同為 1,含 NULL 則 NULL |
四、位運算符(整數運算)
| 運算符 | 含義 | 示例 |
| | 按位或 | 10 | 15 = 15 |
& | 按位與 | 10 & 15 = 10 |
^ | 按位異或 | 10 ^ 15 = 5 |
<< | 左移 | 1 << 2 = 4 |
>> | 右移 | 16 >> 2 = 4 |
~ | 按位取反 | 5 & ~1 = 4 |
五、運算符優先級(高→低)
!、~(一元)
^
*, /, %, MOD
+, -
<<, >>
&
|
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
AND, &&
OR, ||, XOR
:=(賦值)
最佳實踐:不確定時加括號 () 明確優先級,提升可讀性並避免邏輯錯誤。