好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL如何使用union all獲得并集排序

MySQL如何使用union all獲得并集排序

熱門標簽:云南大數據外呼系統 怎么更改高德地圖標注 博樂電銷機器人 上海市三維地圖標注 電話機器人是電腦呼號嗎 南寧外呼系統招商 400電話到哪辦理優惠 機器人打電銷電話 鄭州網絡外呼系統價錢

項目中有時候因為某些不可逆轉的原因使得表中存儲的數據難以滿足在頁面中的展示要求。之前的項目上有文章內容的展示功能,文章分為三個狀態待發布、已發布、已下線。

他們在數據表中判斷狀態的字段(PROMOTE_STATUS)值分別為0、1、2。一開始的需求是文章只展示待發布和已發布,已發布排在待發布前面,并且兩種狀態下在根據自己的情況去排序。這樣的實現比較簡單,如下的order by語句就可以實現了。

order by PROMOTE_STATUS desc ,SEQUENCE_ID desc......

結果移交測試之后,產品覺得這里可以優化下,文章的展示要改為已發布、待發布、已下線(沒錯,已下線它突然就要了,而且很傲嬌的排在了最后)。那怎么辦嘞?改表將已發布、待發布、已下線的PROMOTE_STATUS對應值改為2、1、0肯定是行不通的,因為這個表其他的同事也用了。若是改了這里的對應關系。其他同事的代碼的判斷邏輯都得動。

所以就想到了union all,然后還需要實現文章在三個狀態下的各自展示順序。所以,最終的思路就是將PROMOTE_STATUS分別為1、0、2時的數據查出來,然后根據每種狀態下的情況進行order by排序,最后將各個子集union all之后返回給頁面展示。

最終的sql語句如下:

select
    PROMOTE_ID,
    SEQUENCE_ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    RELEASE_DATE
    FROM (
      (SELECT
        PROMOTE_ID,
        SEQUENCE_ID,
        PROMOTE_STATUS,
        PROMOTE_TITLE,
        RELEASE_DATE 
       FROM SYS_TEXT_PROMOTE
       WHERE
         ENABLED_FLAG = '1'
         AND PROMOTE_STATUS=1
         AND SORT_ID = #{params.sortId}
         order by SEQUENCE_ID DESC,LAST_UPDATE_DATE DESC) a)
union all
select
    PROMOTE_ID,
    SEQUENCE_ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    RELEASE_DATE
    FROM (
      (SELECT
        PROMOTE_ID,
        SEQUENCE_ID,
        PROMOTE_STATUS,
        PROMOTE_TITLE,
        RELEASE_DATE 
       FROM SYS_TEXT_PROMOTE
       WHERE
        ENABLED_FLAG = '1'
        AND PROMOTE_STATUS=2
        AND SORT_ID = #{params.sortId}
        order by RELEASE_DATE DESC,LAST_UPDATE_DATE DESC) b)
union all
select
    PROMOTE_ID,
    SEQUENCE_ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    RELEASE_DATE
    FROM (
      (SELECT
        PROMOTE_ID,
        SEQUENCE_ID,
        PROMOTE_STATUS,
        PROMOTE_TITLE,
        RELEASE_DATE 
       FROM SYS_TEXT_PROMOTE
        WHERE
        ENABLED_FLAG = '1'
        AND PROMOTE_STATUS=0
        AND SORT_ID = #{params.sortId}
        order by RELEASE_DATE DESC,LAST_UPDATE_DATE DESC) c)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL union 語法代碼示例分析
  • mySQL UNION運算符的默認規則研究
  • MySQL中UNION與UNION ALL的基本使用方法
  • 淺析mysql union和union all
  • mysql如何將多行數據合并成一行
  • MYSQL使用Union將兩張表的數據合并顯示

標簽:定西 秦皇島 杭州 益陽 寧夏 恩施 白銀 澳門

巨人網絡通訊聲明:本文標題《MySQL如何使用union all獲得并集排序》,本文關鍵詞  MySQL,如何,使用,union,all,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL如何使用union all獲得并集排序》相關的同類信息!
  • 本頁收集關于MySQL如何使用union all獲得并集排序的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: s货叫大点声C烂你的SB| www.狠狠操| 日本级婬乱片A片AAA软件| 国产中文电影视频在线观看| 韩国三级欧美三级国产三级| 日韩在线观看免费高清视频| 91免费在线看| 欧美乱码精品一区二区三区卡| 51精品秘?免费网站| 男同志操男同志| 啊…嗯啊好深bl尿里面abo| 火车上高H被迫进入| 国外做受91???高潮| 特级毛片免费播放| 在线观看久草视频| 情趣用品体验馆(双性)| 国产精品久久久久久久久人妻| 国产日韩欧美二区| 办公室好紧h| 高清国产在线精品国偷产拍陆萱萱丝袜美腿内衣模特写真图片 | 麻麻调教怀孕的小说| 秀婷程仪公欲息肉欲小说| 老少配videos| 91女神反差婊在线观看| 国产精品视频免费看人鲁| 亚洲欧洲第一页| 国产素人在线观看| 国产高清久久| 欧美 日韩 中文 制服 人妻| jiZZjiZZ日本老师水多| 美女露出??让男生玩网站 | 一本色道久久综合亚洲精品加| 免费看男人吃奶摸捏奶头视频 | 睡觉也不拔出来H| 欧美亂伦ⅩⅩX中字在线| 小小的日本三电影免费观看| 我在nba当大佬| 国产欧美日韩综合在线一 | 韩国免费一级片| 情瘾(出轨,高H)小说| 99re6久精品国产首页|