MySQL中比較運算符的具體使用
  更新時間:2025年07月17日 11:31:44   作者:羚風雯   
                        本文介紹了SQL中常用的符號類型和非符號類型運算符,符號類型運算符包括等于(=)、安全等于(<=>)、不等于(<>/!=)、大小比較(<,<=,>,>=)等,感興趣的可以了解一下
                        符號類型運算符
| 運算符 | 名稱 | 作用 | 示例 | 
|---|---|---|---|
| = | 等于運算符 | 判斷兩個值、字符串或表達式是否相等 | SELECT * FROM users WHERE age = 25 SELECT name FROM products WHERE category = 'Electronics'  | 
| <=> | 安全等于運算符 | 安全地判斷兩個值、字符串或表達式是否相等(兼容NULL值) | SELECT * FROM employees WHERE salary <=> NULL SELECT * FROM orders WHERE coupon_code <=> 'DISCOUNT'  | 
| <> | 不等于運算符 | 判斷兩個值、字符串或表達式是否不相等 | SELECT * FROM students WHERE gender <> 'F' SELECT id FROM logs WHERE status <> 200  | 
| != | 不等于運算符 | 判斷兩個值、字符串或表達式是否不相等 | SELECT * FROM inventory WHERE quantity != 0 SELECT email FROM users WHERE deleted_at != NULL  | 
| < | 小于運算符 | 判斷前面的值是否小于后面的值 | SELECT * FROM products WHERE price < 100 SELECT * FROM events WHERE start_time < '2023-01-01'  | 
| <= | 小于等于運算符 | 判斷前面的值是否小于等于后面的值 | SELECT * FROM members WHERE age <= 18 SELECT * FROM tasks WHERE priority <= 3  | 
| > | 大于運算符 | 判斷前面的值是否大于后面的值 | SELECT * FROM employees WHERE salary > 5000 SELECT * FROM articles WHERE views > 1000  | 
| >= | 大于等于運算符 | 判斷前面的值是否大于等于后面的值 | SELECT * FROM candidates WHERE score >= 60 SELECT * FROM reservations WHERE guests >= 4  | 
1. 等于運算符=
- 作用:判斷兩個值、字符串或表達式是否相等
 - 特點:
- 嚴格比較(NULL = NULL 返回NULL)
 - 區(qū)分大小寫(取決于數(shù)據(jù)庫配置)
 
 - 示例:
-- 數(shù)值比較 SELECT * FROM employees WHERE salary = 5000; -- 字符串比較 SELECT * FROM products WHERE name = 'Laptop';
 
2. 安全等于運算符<=>
- 作用:安全地判斷兩個值/字符串/表達式是否相等(含NULL值)
 - 特點:
- NULL <=> NULL 返回TRUE
 - 其他情況與 
=相同 
 - 示例:
-- NULL值安全比較 SELECT * FROM customers WHERE phone_number <=> NULL; -- 常規(guī)比較 SELECT * FROM orders WHERE status <=> 'completed';
 
3. 不等于運算符<>或!=
- 作用:判斷兩個值/字符串/表達式是否不相等
 - 特點:
<>是標準SQL語法!=是兼容性語法- 兩者功能完全相同
 
 - 示例:
-- 使用<> SELECT * FROM students WHERE grade <> 'F'; -- 使用!= SELECT * FROM inventory WHERE stock_quantity != 0;
 
4. 小于運算符<
- 作用:判斷前面的值是否小于后面的值
 - 數(shù)據(jù)類型支持:
- 數(shù)值:
3 < 5→ TRUE - 字符串:按字典序比較
 - 日期:
'2023-01-01' < '2023-02-01'→ TRUE 
 - 數(shù)值:
 - 示例:
-- 數(shù)值比較 SELECT * FROM products WHERE price < 1000; -- 日期比較 SELECT * FROM events WHERE start_date < CURRENT_DATE;
 
5. 小于等于運算符<=
- 作用:判斷前面的值是否小于或等于后面的值
 - 邊界情況:
5 <= 5→ TRUENULL <= 5→ NULL
 - 示例:
-- 年齡篩選 SELECT * FROM users WHERE age <= 18; -- 庫存檢查 SELECT * FROM warehouse WHERE quantity <= reorder_level;
 
6. 大于運算符>
- 作用:判斷前面的值是否大于后面的值
 - 字符串比較規(guī)則:
'Apple' > 'Banana'→ FALSE(按字符編碼比較)- 大小寫敏感(‘A’ > ‘a’ 結果取決于排序規(guī)則)
 
 - 示例:
-- 薪資查詢 SELECT name FROM employees WHERE salary > 10000; -- 時間范圍 SELECT * FROM logs WHERE timestamp > '2023-06-01 00:00:00';
 
7. 大于等于運算符>=
- 作用:判斷前面的值是否大于或等于后面的值
 - 特殊注意:
- 對NULL值的比較總是返回NULL
 - 適用于范圍查詢的閉合區(qū)間
 
 - 示例:
-- 分數(shù)篩選 SELECT student_id FROM exams WHERE score >= 60; -- 日期范圍 SELECT * FROM reservations WHERE end_date >= '2023-12-31';
 
8.綜合比較表
| 運算符 | NULL處理 | 適用場景 | 典型用例 | 
|---|---|---|---|
| = | 返回NULL | 精確匹配查詢 | 用戶登錄驗證 | 
| <=> | 返回TRUE | 需要包含NULL值的比較 | 可選字段檢查 | 
| <>/!= | 返回NULL | 排除特定值的查詢 | 過濾無效記錄 | 
| < | 返回NULL | 范圍查詢(開區(qū)間) | 查找歷史數(shù)據(jù) | 
| <= | 返回NULL | 范圍查詢(閉區(qū)間) | 統(tǒng)計截止某日期的數(shù)據(jù) | 
| > | 返回NULL | 下限篩選 | 查找高價值客戶 | 
| >= | 返回NULL | 下限篩選(含邊界) | 達標數(shù)據(jù)篩選 | 
非符號類型運算符
| 運算符 | 名稱 | 作用 | 示例 | 
|---|---|---|---|
| IS NULL | 為空運算符 | 判斷值/字符串/表達式是否為空 | SELECT B FROM table WHERE A IS NULL | 
| IS NOT NULL | 不為空運算符 | 判斷值/字符串/表達式是否不為空 | SELECT B FROM table WHERE A IS NOT NULL | 
| LEAST | 最小值運算符 | 在多個值中返回最小值 | SELECT D FROM table WHERE C = LEAST(A,B) | 
| GREATEST | 最大值運算符 | 在多個值中返回最大值 | SELECT D FROM table WHERE C = GREATEST(A,B) | 
| BETWEEN | 區(qū)間運算符 | 判斷值是否在兩個值之間 | SELECT D FROM table WHERE C BETWEEN A AND B | 
| IN | 屬于運算符 | 判斷值是否為列表中的任意一個 | SELECT D FROM table WHERE C IN (A,B) | 
| NOT IN | 不屬于運算符 | 判斷值是否不在列表中 | SELECT D FROM table WHERE C NOT IN (A,B) | 
| LIKE | 模糊匹配運算符 | 判斷值是否符合模糊匹配規(guī)則 | SELECT C FROM table WHERE A LIKE B | 
| REGEXP/RLIKE | 正則表達式運算符 | 判斷值是否符合正則表達式 | SELECT C FROM table WHERE A REGEXP B | 
一、空值判斷運算符
1.IS NULL
- 功能:判斷值/字符串/表達式是否為空
 - 語法:
WHERE column IS NULL - 特點:
- 唯一正確的NULL值判斷方式(
= NULL是錯誤語法) - 適用于所有數(shù)據(jù)類型
 
 - 唯一正確的NULL值判斷方式(
 - 示例:
-- 查找未填寫電話號碼的用戶 SELECT * FROM users WHERE phone IS NULL;
 
2.IS NOT NULL
- 功能:判斷值/字符串/表達式是否不為空
 - 語法:
WHERE column IS NOT NULL - 應用場景:
- 數(shù)據(jù)完整性檢查
 - 有效記錄篩選
 
 - 示例:
-- 查找已激活的用戶(email不為空) SELECT * FROM accounts WHERE email IS NOT NULL;
 
二、極值運算符
3.LEAST
- 功能:返回參數(shù)列表中的最小值
 - 特點:
- 支持2個及以上參數(shù)
 - 可比較數(shù)值/字符串/日期等類型
 
 - 示例:
-- 獲取最早日期 SELECT LEAST('2023-01-01', '2022-12-31', '2023-05-15'); 
4.GREATEST
- 功能:返回參數(shù)列表中的最大值
 - 典型應用:
- 價格上限控制
 - 有效期計算
 
 - 示例:
-- 計算最終價格(不超過建議零售價) SELECT product_id, LEAST(price, msrp) AS final_price FROM products;
 
三、范圍運算符
5.BETWEEN
- 功能:判斷值是否在指定范圍內(nèi)(閉區(qū)間)
 - 等效寫法:
WHERE x >= a AND x <= b - 注意事項:
- 總是先寫小值再寫大值
 - 日期范圍查詢時包含邊界
 
 - 示例:
-- 查詢2023年Q2訂單 SELECT * FROM orders WHERE order_date BETWEEN '2023-04-01' AND '2023-06-30';
 
四、集合運算符
6.IN
- 功能:判斷值是否在指定列表中
 - 性能建議:
- 列表項超過100時考慮臨時表
 - 支持子查詢
 
 - 示例:
-- 查找特定品類商品 SELECT * FROM products WHERE category_id IN (1, 3, 5);
 
7.NOT IN
- 功能:判斷值是否不在指定列表中
 - NULL值陷阱:
- 當列表包含NULL時,所有比較返回NULL
 - 建議配合
IS NOT NULL使用 
 - 示例:
-- 排除測試賬戶 SELECT * FROM users WHERE user_id NOT IN (999, 1000);
 
五、模式匹配運算符
8.LIKE
- 通配符:
符號 功能 %匹配任意數(shù)量字符 _匹配單個字符  - 大小寫敏感:取決于數(shù)據(jù)庫配置
 - 示例:
-- 查找J開頭的姓名 SELECT * FROM employees WHERE name LIKE 'J%';
 
9.REGEXP/RLIKE
- 功能:正則表達式匹配(兩者完全等效)
 - 常用模式:
^:字符串開始$:字符串結束[0-9]:數(shù)字字符
 - 示例:
-- 驗證郵箱格式 SELECT * FROM contacts WHERE email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'; 
六、特殊說明
10.ISNULL(MySQL特有)
- 注意:與
IS NULL功能相同,但非SQL標準 - 建議:優(yōu)先使用標準語法
IS NULL 
到此這篇關于MySQL中比較運算符的具體使用的文章就介紹到這了,更多相關MySQL 比較運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
 如何解決局域網(wǎng)內(nèi)mysql數(shù)據(jù)庫連接慢
通過內(nèi)網(wǎng)連另外一臺機器的mysql服務, 確發(fā)現(xiàn)速度N慢! 等了大約幾十秒才等到提示輸入密碼。非常急人,有沒有辦法可以解決局域網(wǎng)內(nèi)mysql數(shù)據(jù)庫連接慢呢?下面小編帶領大家來解決此問題,感興趣的朋友一起看看吧2015-09-09
 mysql8.0.11安裝配置方法圖文教程 MySQL8.0新密碼認證方式
這篇文章主要為大家詳細介紹了mysql8.0.11安裝配置方法圖文教程,以及MySQL8.0新密碼認證方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11
 window環(huán)境下使用VScode連接虛擬機MySQL方法
這篇文章主要介紹了window環(huán)境下使用VScode連接虛擬機MySQL方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04

