簡單UNION操作

2021-08-30 08:24:45 字數 1230 閱讀 9015

mysql允許執行多個查詢(多條select語句),並將結果作為單個查詢結果集返回。這些組合查詢通常稱為並(union)或復合查詢。

需要使用組合查詢的兩種基本情況:

a. 在單個查詢中從不同的表返回類似結構的資料;

b. 在單個表執行多個查詢,按單個查詢返回資料;

1. 任何具有多個where子句的select語句都可以作為乙個組合查詢給出

例如:

select vend_id, prod_id, prod_price

from products

where prod_price <= 5

union

select vend_id, prod_id, prod_price

from products

where vend_id in (1001, 1002);

等價於

select vend_id, prod_id, prod_price

from products

where (prod_price <= 5) or (vend_id in (1001, 1002));

對於複雜的過濾條件,或者從多個表(而不是單個表)中檢索資料的情形,使用union可能會使處理更簡單。

2. 包含或取消重複的行

union從查詢結果集中自動去除了重複的行,它的行為與單條select語句使用多個where子句條件一樣。

union all返回所有匹配行,不去除重複的行,可以完成where子句完成不了的工作;

3. 對組合查詢結果排序

在用union組合查詢時,只能使用一條order by子句,它必須出現在最後一條select語句之後。對於結果集,不存在用一種方式排序一部分,而又用另一種方式排序另一部分,因此不允許使用多條order by子句。

select vend_id, prod_id, prod_price

from products

where prod_price <= 5

union

select vend_id, prod_id, prod_price

from products

where vend_id in (1001, 1002)

order by vend_id, prod_price;

SQL基本操作 UNION

union 操作符 用於合併兩個或多個 select 語句的結果集。請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。注釋 預設地,union 操作符選取不同的值。如果允許重複的值,請使用 union ...

簡單聯合union查詢注入

聯合查詢有前提 必須有顯示位 用sql labs來學習 這是第乙個 一 判斷是否用 做字串引號 and 1 1 正常輸出 出錯代表沒有閉合 說明沒有用 可能沒有用 或用了 或 則是 字串注入 二 判斷它所在的資料庫有幾列 order by 3 判斷是否有3列 正常 order by 4 判斷是否有4...

Mysql子查詢 UNION操作

1.where型子查詢 指把內層查詢的結果作為外層查詢結果的比較條件。例如 我們查詢乙個貨物id的最大的那乙個值可以通過order by來查詢,如 那麼,如果不能用order by呢,我們可以用where子查詢來解決 和group by組合成的子查詢 select goods id,cat id,g...