萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 運算符完整指南:算術、比較、邏輯與位運算詳解

MySQL 提供了豐富的運算符來支援各類資料操作,主要分為算術運算符、比較運算符、邏輯運算符與位運算符四大類。熟練掌握這些運算符,能讓你在撰寫查詢、處理資料運算時更加得心應手。本文將透過實例逐一解析各類運算符的用法與注意事項。

一、算術運算符

MySQL 支援標準的算術運算,包括加法(+)、減法(-)、乘法(*)、除法(/,回傳商)與取模(%,回傳餘數)。所有涉及整數的運算均以 64 位精度進行。

SELECT 1+2;   -- 3
SELECT 2-1;   -- 1
SELECT 3*2;   -- 6
SELECT 6/2;   -- 3
SELECT 25%7;  -- 4

特殊情況: 除數為 0 時結果為 NULL(如 SELECT 5/0;)。

字串隱性轉換規則:

  1. 若字串以數字開頭,參與運算時會自動轉為該數值(如 '100'+'004' = 104)。
  2. 若字串包含非數字字元且無法正確轉換,則視為 0(如 '90AA'+'0' = 90、'10x'*'qwe' = 0)。

二、比較運算符

比較運算的結果永遠是 1(真)、0(假)或 NULL(不確定)。常用運算符包括:

  • =、<>(或 !=)判斷相等與不相等
  • >、<、>=、<= 大小比較
  • BETWEEN ... AND ... 範圍檢查
  • IN (...)、NOT IN (...) 集合成員檢查
SELECT 6=6, 3.4=4.5, 'a'='b';
SELECT 7<>7, 7<>8, 'a'<>'b';
SELECT 100>100, 10<100;
SELECT 10 BETWEEN 0 AND 100;
SELECT 7 IN (1,2,3,4,5,6,7,8,9);

預設比較不區分大小寫,若需區分可使用 BINARY 關鍵字:SELECT BINARY 'ross' IN ('Chandler','Joey','Ross');

三、邏輯運算符

邏輯運算同樣回傳 1、0 或 NULL。

  • NOT:邏輯取反。SELECT NOT 1, NOT 0, NOT (2=2); → 0, 1, 0
  • AND:所有條件為真且非 NULL 才回傳真。SELECT (2=2) AND (900<100); → 0
  • OR:任一條件為真且非 NULL 即回傳真。SELECT (2=2) OR (900<100); → 1
  • XOR(MySQL 4.x+):僅當兩邊恰好一真一假時回傳真。SELECT (1=1) XOR (2=4), (1<2) XOR (9<10); → 1, 0

四、位運算符

MySQL 提供 6 個位元運算符,直接對二進制位進行操作:

  • | 位元 OR、& 位元 AND
  • << 左移、>> 右移
  • ^ 位元 XOR
  • ~ 位元取反(回傳 64 位整數)
SELECT 16|32, 9|4;      -- 48, 13
SELECT 30 & 10, 8 & 16; -- 10, 0
SELECT 1<<7, 64>>1;     -- 128, 32
SELECT 1^0, 0^1, 17^9, 143^66; -- 1, 1, 24, 205
SELECT ~18446744073709551614, ~1; -- 1, 18446744073709551614

掌握這些運算符,能讓你在 SQL 查詢中靈活處理數值運算、條件判斷與位元級資料操作,提升開發效率與查詢效能。

copyright © 萬盛學電腦網 all rights reserved