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

MySQL UNION 語法詳解與分頁實戰範例

     編輯:MySQL 資料庫相關知識

UNION 基本語法

SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]
  • 合併多個 SELECT 結果集,欄位數、型別、順序必須一致。
  • 預設 DISTINCT 去重;ALL 保留重複行,效能較好。
  • 結果集欄位名稱以第一個 SELECT 為準。

進階用法

搭配 ORDER BY / LIMIT

對整體結果排序分頁,需用括號包住各 SELECT:

(SELECT a FROM tbl WHERE a=10 AND b=1)
UNION
(SELECT a FROM tbl WHERE a=11 AND b=2)
ORDER BY a LIMIT 10;

單獨對某 SELECT 排序/限制

(SELECT a FROM tbl WHERE a=10 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM tbl WHERE a=11 ORDER BY a LIMIT 10);

別名與 ORDER BY

若有別名,ORDER BY 必須用別名,不可用原欄位名。

實戰:置頂文章優先分頁

(SELECT * FROM `blog` WHERE top=1 ORDER BY created DESC)
UNION
(SELECT * FROM `blog` WHERE top=0 ORDER BY created DESC)
LIMIT 2, 3;

單一 SQL 即可實現「置頂在前、一般在後」的分頁邏輯,避免應用層多次查詢合併。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved