程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL union 語法代碼示例剖析

MySQL union 語法代碼示例剖析

編輯:MySQL綜合教程

MySQL union 語法代碼示例剖析。本站提示廣大學習愛好者:(MySQL union 語法代碼示例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL union 語法代碼示例剖析正文



SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]
SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]

UNION 用於把來自很多SELECT語句的成果組合到一個成果聚集中。 (假如你要將多個表的查詢成果停止歸並輸入好比說 群組新聞跟小我新聞表是分別的然則想一路提掏出來並顯示的話便可以如斯處置。經由過程MySQLUNION結合查詢出來便可)
列於每一個SELECT語句的對應地位的被選擇的列應具有雷同的類型(條件前提是兩個SELECT出來的列類型要堅持一樣的才行!)。(例如,被第一 個語句選擇的第一列應和被其它語句選擇的第一列具有雷同的類型。)在第一個SELECT語句中被應用的列稱號也被用於成果的列稱號。
SELECT語句為慣例的選擇語句,然則遭到以下的限制:
只要最初一個SELECT語句可使用INTO OUTFILE。
HIGH_PRIORITY不克不及與作為UNION一部門的SELECT語句同時應用。假如您對第一個 SELECT指定了HIGH_PRIORITY,則不會起感化。假如您對其它後續的SELECT語句指定HIGH_PRIORITY,則會發生語法錯 誤。
假如您對UNION不應用症結詞ALL,則一切前往的行都是獨一的,好像您曾經對全部成果聚集應用了DISTINCT。假如您指定了ALL,您會從 一切用過的SELECT語句中獲得一切婚配的行。
DISTINCT症結詞是一個自選詞,不起任何感化,然則依據SQL尺度的請求,在語法中許可采取。(在MySQL中,DISTINCT代表一個共 用體的默許任務性質。)
您可以在統一查詢中混雜UNION ALL和UNION DISTINCT。被混雜的UNION類型依照如許的方法看待,即DISTICT共用體籠罩位於其右邊的一切ALL共用體。DISTINCT共用體可使 用UNION DISTINCT明白地生成,或應用UNION(前面不加DISTINCT或ALL症結詞)隱含地生成。
假如您想應用ORDER BY或LIMIT子句來對全體UNION成果停止分類或限制,則應對單個地SELECT語句加圓括號,並把ORDER BY或LIMIT放到最初一個的前面。以下例子同時應用了這兩個子句:
代碼
(SELECT a FROM tbl_name WHERE a=10 AND B=1)UNION(SELECT a FROM tbl_name WHERE a=11 AND B=2)ORDER BY a LIMIT 10;
(假如想要完成分頁的話可以如許處置 將兩個查詢的成果集看成是一個年夜的成果集處置然後再對此年夜的成果集停止LIMIT處置便可完成!)好好好 ~!
(SELECT a FROM tbl_name WHERE a=10 AND B=1)MySQLUNION(SELECT a FROM tbl_name WHERE a=11 AND B=2)ORDER BY a LIMIT 10;
這類ORDER BY不克不及應用包含表稱號(也就是,采取tbl_name.col_name格局的稱號)列援用。可以在第一個SELECT語句中供給一個列別號,並在 ORDER BY中參閱別號,或應用各位置在ORDER BY中參閱列。(首選采取別號,由於不建議應用各位置。)
別的,假如帶分類的一列有別號,則ORDER BY子句必需援用別號,而不克不及援用列稱號。以下語句中的第一個語句必需運轉,然則第二個會運轉掉敗,湧現在'order clause'中有未知列'a'的毛病:
代碼

(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b;
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a;
To apply ORDER BY or LIMIT to an individual SELECT,
place the clause inside the parentheses that enclose the SELECT:
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b;
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a;
To apply ORDER BY or LIMIT to an individual SELECT,
place the clause inside the parentheses that enclose the SELECT:

為了對單個SELECT應用ORDER BY或LIMIT,應把子句放入圓括號中。圓括號包括了SELECT:
代碼

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

二 實例擴大
MySQLunion可以對統一個表的兩次查詢結合起來. 如許做的好處也異常顯著, 好比在blog運用中, 可以應用一條sql語句完成置頂blog和通俗blog的分頁顯示.
代碼

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

以上的相干內容就是對MySQLunion語法的引見,望你能有所收成。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved