最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中union和union?all的使用及注意事項

 更新時間:2022年08月05日 11:54:08   作者:如來神掌十八式  
這篇文章主要給大家介紹了關(guān)于mysql中union和union?all的使用及注意事項的相關(guān)資料,需要的朋友可以參考下

1. sql中 union 和 union all 的用法

如果我們需要將兩個 select 語句的結(jié)果作為一個整體顯示出來,我們就需要用到 union 或者 union all 關(guān)鍵字。union (或稱為聯(lián)合)的作用是將多個結(jié)果合并在一起顯示出來。

unionunion all 的區(qū)別是,union 會自動壓縮多個結(jié)果集合中的重復結(jié)果,而 union all 則將所有的結(jié)果全部顯示出來,不管是不是重復。

union:對兩個結(jié)果集進行并集操作,不包括重復行,同時進行默認規(guī)則的排序;union 在進行表鏈接后會篩選掉重復的記錄,所以在表鏈接后會對所產(chǎn)生的結(jié)果集進行排序運算,刪除重復的記錄再返回結(jié)果。實際大部分應用中是不會產(chǎn)生重復的記錄,最常見的是過程表與歷史表 union。

如下sql:

SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'

結(jié)果:

001.png

union all:對兩個結(jié)果集進行并集操作,包括重復行,不進行排序; 如果返回的兩個結(jié)果集中有重復的數(shù)據(jù),那么返回的結(jié)果集就會包含重復的數(shù)據(jù)了。

如下sql:

SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION ALL
SELECT create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'

結(jié)果:

002.png

2. 注意事項

2.1、UNION 和 UNION ALL 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列

image.png

2.2、每條 SELECT 語句中列的順序必須相同

先來說下,如果順序不同,會是什么結(jié)果?

答:結(jié)果字段的順序以union all 前面的表字段順序為準。

union all 后面的表的數(shù)據(jù)會按照順序依次附在后面。注意:按照字段順序匹配,而不是按照字段名稱匹配。

sql如下:順序?qū)Y(jié)果的影響

SELECT * 
FROM(
	SELECT msku,create_time FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK'
UNION ALL
	SELECT create_time,msku FROM `e_msku_sku` WHERE msku = '21-BQLEDNL120W-BK') t

image.png

綜上:

union all 結(jié)果字段的順序以 union all 前面的表字段順序為準。union all 后面的表的數(shù)據(jù)會按照字段順序依次附在后面,而不是按照字段名稱匹配。

我們上面以*來表示順序的不同,其實你寫成不同順序的字段結(jié)果一致。

image.png

3. union all 使用場景

sql 中的組合in,可用 union all 來代替,提高查詢效率

修改前:組合in sql

SELECT ***, ***, ***, ***, ***
FROM e_rating_info 
WHERE rating_quantity <> 0 AND (***, ***) 
IN (('***', '***'), ('***', '***'), 
('***', '***'), ('***', '***'), 
('***', '***'), ('***', '***'), 
('***', '***'), ('***', '***'), 
('***', '***'), ('***', '***')) 
ORDER BY *** DESC

修改后:UNION ALL sql

<select id="queryRatingInfo" resultType="***">
        <foreach collection="ratingList" item="item" index="index" open="" separator="UNION ALL" close="">
            SELECT ***, ***, ***, ***, ***
            FROM e_rating_info
            WHERE rating_quantity &lt;&gt; 0
            AND country_code = #{item.***}
            AND asin = #{item.***}
        </foreach>
        ORDER BY *** DESC;
    </select>

另外,如果系統(tǒng)中進行了分表,一定要保證各個表的字段順序一致。特別是修改的時候。否則,如果使用 *匯總查詢結(jié)果,肯定是會有問題的…親身踩坑。

補充:mysql中union和union all的區(qū)別

一、區(qū)別1:取結(jié)果的交集

1、union: 對兩個結(jié)果集進行并集操作, 不包括重復行,相當于distinct, 同時進行默認規(guī)則的排序;

2、union all: 對兩個結(jié)果集進行并集操作, 包括重復行, 即所有的結(jié)果全部顯示, 不管是不是重復;

二、區(qū)別2:獲取結(jié)果后的操作

1、union: 會對獲取的結(jié)果進行排序操作

2、union all: 不會對獲取的結(jié)果進行排序操作

三、區(qū)別3:

1、union看到結(jié)果中ID=3的只有一條

select * from student2 where id < 4
union
select * from student2 where id > 2 and id < 6

2、union all 結(jié)果中ID=3的結(jié)果有兩個

select * from student2 where id < 4
union all
select * from student2 where id > 2 and id < 6

總結(jié)

到此這篇關(guān)于mysql中union和union all的使用及注意事項的文章就介紹到這了,更多相關(guān)mysql union和union all內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 8 新特性之Invisible Indexes

    MySQL 8 新特性之Invisible Indexes

    這篇文章主要介紹了MySQL 8 新特性之Invisible Indexes 的相關(guān)資料,需要的朋友可以參考下
    2018-05-05
  • mysql事務處理用法與實例代碼詳解

    mysql事務處理用法與實例代碼詳解

    這篇文章主要介紹了mysql事務處理用法與實例代碼詳解,詳細的介紹了事物的特性和用法并實現(xiàn)php和mysql事務處理例子,非常具有實用價值,需要的朋友可以參考下
    2018-12-12
  • mysql如何將一個字段賦值給另一個字段

    mysql如何將一個字段賦值給另一個字段

    這篇文章主要介紹了mysql如何將一個字段賦值給另一個字段,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 深入了解MySQL鎖機制及應用場景

    深入了解MySQL鎖機制及應用場景

    MySQL鎖是操作MySQL數(shù)據(jù)庫時常用的一種機制。MySQL鎖可以保證多個用戶在同時執(zhí)行讀寫操作時,能夠互相協(xié)同、避免數(shù)據(jù)出現(xiàn)不一致或者讀寫沖突等問題。本篇文章將詳細介紹MySQL鎖的基本知識和具體應用
    2023-03-03
  • mysql 字符串長度計算實現(xiàn)代碼(gb2312+utf8)

    mysql 字符串長度計算實現(xiàn)代碼(gb2312+utf8)

    PHP對中文字符串的處理一直困擾于剛剛接觸PHP開發(fā)的新手程序員。下面簡要的剖析一下PHP對中文字符串長度的處
    2011-12-12
  • 簡單實現(xiàn)SQLServer轉(zhuǎn)MYSQL的方法

    簡單實現(xiàn)SQLServer轉(zhuǎn)MYSQL的方法

    SqlServer數(shù)據(jù)轉(zhuǎn)換成mysql數(shù)據(jù),可以說是一個老生常談了,網(wǎng)上也有很多的方法,今天我們來看一種不一樣的方法,而且也非常的簡單,雖然有點小缺陷,但還是不失為一種很好的方法,當然如果結(jié)合mss2sql那就非常完美了
    2014-08-08
  • MYSQL中binlog優(yōu)化的一些思考匯總

    MYSQL中binlog優(yōu)化的一些思考匯總

    這篇文章主要給大家介紹了關(guān)于MYSQL中binlog優(yōu)化的一些思考,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06
  • 淺談mysql 自定義函數(shù)

    淺談mysql 自定義函數(shù)

    本文主要是分析了一下在工作中寫的一個mysql的自定義函數(shù),很簡單,僅僅是希望能對大家理解mysql自定義函數(shù)有所幫助。
    2014-09-09
  • win10下mysql 8.0.18 安裝配置方法圖文教程(windows版)

    win10下mysql 8.0.18 安裝配置方法圖文教程(windows版)

    這篇文章主要介紹了windows版的mysql 8.0.18 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 解決mysql @@sql_mode問題---only_full_group_by

    解決mysql @@sql_mode問題---only_full_group_by

    這篇文章主要介紹了解決mysql @@sql_mode問題---only_full_group_by,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09

最新評論

石泉县| 贵溪市| 富平县| 都江堰市| 尚义县| 育儿| 大理市| 蚌埠市| 西丰县| 景洪市| 江华| 渝北区| 桦南县| 和林格尔县| 容城县| 宝应县| 荥阳市| 赣州市| 云浮市| 阿坝县| 宝山区| 繁昌县| 湖口县| 乃东县| 邹平县| 定边县| 右玉县| 洪洞县| 翁源县| 平阳县| 宁安市| 新津县| 枣强县| 扬州市| 祁连县| 驻马店市| 河曲县| 新泰市| 青神县| 潜山县| 怀安县|