国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > MySQL的select語句怎么輸出多行常量?

MySQL的select語句怎么輸出多行常量?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 13:53:48 1697176428

一、MySQL的select語句輸出多行常量的方法

使用union all運算符將多個 SELECT 查詢的結果集組合起來作為一個更大的結果集輸出。

例子:

SELECT 'ABC' AS col1, '123' AS col2UNION ALLSELECT 'DEF' AS col1, '456' AS col2;

在以上代碼中,我們定義了兩個 SELECT 語句,每個 SELECT 語句都選擇了兩個常量值,并使用 UNION ALL 運算符將兩個結果集組合起來。輸出結果如下:

+------+------+ | col1 | col2 | +------+------+ | ABC  | 123  | | DEF  | 456  | +------+------+

在這個例子中,我們定義了兩個 SELECT 語句,每個 SELECT 語句都返回兩個常量值,并使用 UNION ALL 運算符將這些結果集組合在一起,形成一個包含兩個行的結果集。需要注意的是,每個 SELECT 語句返回的列數和數據類型必須相同,否則將會出現錯誤。

二、union all 運算符

union all 運算符使用同名的物理運算符來實現。union all 是一種相當簡單的操作,僅在查詢要移動大量數據時才應并行使用它。

1、并行 union all

要生成并行的 union all,少數的條件是它的操作數必須具有相同的度,而無論這些操作數具有何種分區類型。

以下示例(使用表HA2)顯示了要并行處理的 union all 運算符。exchange 運算符的位置高于 union all 運算符,這表示它要由多個線程共同處理:

create table HA2(a1 int, a2 int, a3 int)partition by hash(a1, a2) (p1, p2)select * from RA2union allselect * from HA2QUERY PLAN FOR STATEMENT 1 (at line 1).Executed in parallel by coordinating process and 2 worker processes.The type of query is SELECT.ROOT:EMIT Operator????|EXCHANGE Operator (Merged)????|Executed in parallel by 2 Producer and 1 Consumer ?????processes.?????|????|   |EXCHANGE:EMIT Operator????|   |????|   |   |UNION ALL Operator has 2 children.????|   |   |????|   |   |   |SCAN Operator????|   |   |   |  FROM TABLE????|   |   |   |  RA2????|   |   |   |  Table Scan.. . . . . . . . . . . . . . . . . . .????|   |   |   |  Executed in parallel with a 2-way ???????????????????partition scan.. . . . . . . . . . . . . . . . . . .????|   |   |????|   |   |   |SCAN Operator????|   |   |   |  FROM TABLE????|   |   |   |  HA2????|   |   |   |  Table Scan.????. . . . . . . . . . . . . . . . . . .????|   |   |   |  Executed in parallel with a 2-way ???????????????????partition scan.

2、串行 union all

在下一示例中,來自 union 運算符每一側的數據分別由每一側的選擇性謂詞加以限制。

要通過 union all 運算符發送的數據量將很少,足以決定不并行運行聯合。相反,通過在 union 的每一側都放置 2 對 1 的 exchange 運算符,將對表 RA2 和 HA2 的每次掃描進行組織。結果操作數隨后由 union all 操作符并行處理:

select * from RA2where a2 > 2400union allselect * from HA2where a3 in (10,20)
Executed in parallel by coordinating process and 4 worker processes.7 operator(s) under rootThe type of query is SELECT.ROOT:EMIT Operator |UNION ALL Operator has 2 children. | |   |EXCHANGE Operator (Merged) |   |Executed in parallel by 2 Producer and 1??????????????Consumer processes. |   | |   |   |EXCHANGE:EMIT Operator?|   |   | |   |   |   |SCAN Operator |   |   |   |  FROM TABLE |   |   |   |  RA2 |   |   |   |  Table Scan. |   |   |   |  Executed in parallel with a 2-way??????????????????????partition scan. | |   |EXCHANGE Operator (Merged) |   |Executed in parallel by 2 Producer and 1??????????????Consumer processes. |   | |   |   |EXCHANGE:EMIT Operator |   |   | |   |   |   |SCAN Operator |   |   |   |  FROM TABLE |   |   |   |  HA2 |   |   |   | ?Table Scan. |   |   |   |  Executed in parallel with a 2-way??????????????????????partition scan.

延伸閱讀1:MySQL

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是較好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT