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

mysql的union和union all用法詳解

 更新時(shí)間:2023年08月25日 10:23:09   作者:如來(lái)神掌十八式  
union 和 union all 的區(qū)別是,union 會(huì)自動(dòng)壓縮多個(gè)結(jié)果集合中的重復(fù)結(jié)果,而 union all 則將所有的結(jié)果全部顯示出來(lái),不管是不是重復(fù),本文給大家介紹mysql的union和union all用法,感興趣的朋友一起看看吧

1. sql中 union 和 union all 的用法

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

unionunion all 的區(qū)別是,union 會(huì)自動(dòng)壓縮多個(gè)結(jié)果集合中的重復(fù)結(jié)果,而 union all 則將所有的結(jié)果全部顯示出來(lái),不管是不是重復(fù)。

union:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,不包括重復(fù)行,同時(shí)進(jìn)行默認(rèn)規(guī)則的排序;union 在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。實(shí)際大部分應(yīng)用中是不會(huì)產(chǎn)生重復(fù)的記錄,最常見(jiàn)的是過(guò)程表與歷史表 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:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序; 如果返回的兩個(gè)結(jié)果集中有重復(fù)的數(shù)據(jù),那么返回的結(jié)果集就會(huì)包含重復(fù)的數(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é)果:

2. 注意事項(xiàng)

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

image.png

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

  • 先來(lái)說(shuō)下,如果順序不同,會(huì)是什么結(jié)果?
    答:結(jié)果字段的順序以union all 前面的表字段順序?yàn)闇?zhǔn)。
    union all 后面的表的數(shù)據(jù)會(huì)按照順序依次附在后面。注意:按照字段順序匹配,而不是按照字段名稱匹配。

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

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 前面的表字段順序?yàn)闇?zhǔn)。union all 后面的表的數(shù)據(jù)會(huì)按照字段順序依次附在后面,而不是按照字段名稱匹配。

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

image.png

3. union all 使用場(chǎng)景

  • sql 中的組合in,可用 union all 來(lái)代替,提高查詢效率

修改前:組合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)中進(jìn)行了分表,一定要保證各個(gè)表的字段順序一致。特別是修改的時(shí)候。否則,如果使用 *匯總查詢結(jié)果,肯定是會(huì)有問(wèn)題的…親身踩坑。

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

相關(guān)文章

  • 如何清理MySQL中的binlog問(wèn)題

    如何清理MySQL中的binlog問(wèn)題

    這篇文章主要介紹了清理MySQL中的binlog問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 安裝mysql8.0.11及修改root密碼、連接navicat for mysql的思路詳解

    安裝mysql8.0.11及修改root密碼、連接navicat for mysql的思路詳解

    這篇文章主要介紹了安裝mysql8.0.11以及修改root密碼、連接navicat for mysql,需要的朋友可以參考下
    2018-06-06
  • mysql5.7.18版本免安裝配置教程

    mysql5.7.18版本免安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.18版本免安裝的配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • mysqli預(yù)處理編譯的深入理解

    mysqli預(yù)處理編譯的深入理解

    記得以前寫過(guò)mysqli的預(yù)處理的php教程,現(xiàn)在整理一下,需要的朋友可以參考
    2012-12-12
  • MySQL的事件調(diào)度器使用介紹

    MySQL的事件調(diào)度器使用介紹

    這篇文章主要介紹了MySQL的事件調(diào)度器使用介紹,本文講解了事件調(diào)度器的開啟、創(chuàng)建、修改、刪除等操作的使用實(shí)例,需要的朋友可以參考下
    2015-06-06
  • MySQL?中這么多索引該怎么選擇

    MySQL?中這么多索引該怎么選擇

    這篇文章主要介紹了MySQL?中這么多索引該怎么選擇,索引的本質(zhì)是存儲(chǔ)引擎用于快速查詢記錄的一種數(shù)據(jù)結(jié)構(gòu)。特別是數(shù)據(jù)表中數(shù)據(jù)特別多的時(shí)候,索引對(duì)于數(shù)據(jù)庫(kù)的性能就愈發(fā)重要,下文詳細(xì)相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-09-09
  • mySQL 延遲 查詢主表

    mySQL 延遲 查詢主表

    在主外鍵表存在關(guān)系的時(shí)候如果加上"lazy=true"的話,則表明延遲,即只查詢主表中的內(nèi)容,而不查詢外鍵表中的內(nèi)容。
    2009-09-09
  • 提高M(jìn)ySQL中InnoDB表BLOB列的存儲(chǔ)效率的教程

    提高M(jìn)ySQL中InnoDB表BLOB列的存儲(chǔ)效率的教程

    這篇文章主要介紹了提高M(jìn)ySQL中InnoDB表BLOB列的存儲(chǔ)效率的教程,InnoDB的優(yōu)化在MySQL的優(yōu)化研究中也是一個(gè)非常熱門的課題,需要的朋友可以參考下
    2015-05-05
  • 解決mysql.server?start執(zhí)行報(bào)錯(cuò)ERROR!The?server?quit?without?updating?PID?file

    解決mysql.server?start執(zhí)行報(bào)錯(cuò)ERROR!The?server?quit?without?u

    這篇文章主要介紹了解決mysql.server?start執(zhí)行報(bào)錯(cuò)ERROR!The?server?quit?without?updating?PID?file問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Mysql中索引和約束的示例語(yǔ)句

    Mysql中索引和約束的示例語(yǔ)句

    這篇文章主要介紹了Mysql中索引和約束的相關(guān)資料,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01

最新評(píng)論

和顺县| 磐石市| 林周县| 伊宁县| 库伦旗| 梨树县| 建湖县| 苍南县| 郁南县| 临夏县| 包头市| 太原市| 靖边县| 兴业县| 静乐县| 长顺县| 临夏县| 嘉禾县| 潼关县| 平舆县| 芮城县| 德江县| 郯城县| 怀化市| 洪泽县| 安宁市| 龙海市| 子长县| 沾化县| 大城县| 通山县| 肥西县| 旺苍县| 乌拉特后旗| 鄂尔多斯市| 博乐市| 德令哈市| 盐池县| 高邮市| 潢川县| 乡宁县|