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

MySQL 進階 SELECT 查詢實戰:條件篩選、日期比較、多條件組合

     編輯:MySQL 資料庫相關知識

SELECT 是資料庫操作最高頻指令,掌握進階篩選技巧能精準取得所需資料集。

測試資料表 emp

emp_idemp_nameemp_ageemp_salemp_biremp_sex
100001紅楓2990001977-01-01male
100002麗鵑2780001979-12-31fmale
100005嘯天2740001979-07-10male

範例查詢

1. 日期範圍 + 數值篩選

-- 1979-12-01 前出生,薪資 > 5000
SELECT * FROM emp 
WHERE emp_bir < '1979-12-01' AND emp_sal > 5000;
-- 結果:紅楓 (1977-01-01, 9000)

2. 日期下界

-- 1978-01-01 後出生
SELECT * FROM emp WHERE emp_bir > '1978-01-01';
-- 結果:嘯天 (1979-07-10)、麗鵑 (1979-12-31)

3. 單一數值條件

-- 薪資 > 5000
SELECT * FROM emp WHERE emp_sal > 5000;
-- 結果:紅楓、麗鵑

4. 字串精確比對

-- 姓名 = '嘯天'
SELECT * FROM emp WHERE emp_name = '嘯天';
-- 結果:嘯天

進階技巧補充

  • 模糊比對:WHERE name LIKE '張%'(前綴可用索引)、WHERE name LIKE '%強%'(前導萬用字元不可用索引)。
  • 集合比對:WHERE dept_id IN (1,3,5) 優於多個 OR。
  • 空值判斷:WHERE col IS NULL / IS NOT NULL(= NULL 永遠為 FALSE)。
  • 分頁:LIMIT offset, count(如 LIMIT 20, 10 取第 21-30 筆)。
  • 排序:ORDER BY col1 DESC, col2 ASC。
  • 去重:SELECT DISTINCT col FROM ...。

效能關鍵

  1. WHERE 條件欄位建立適當索引(EXPLAIN 驗證 type=ref/range)。
  2. 避免 SELECT *,僅取需要欄位(減少網路傳輸、覆蓋索引機會)。
  3. 大表分頁深翻時改用「游標分頁」(WHERE id > last_id ORDER BY id LIMIT N)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved