婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > MySQL如何使用union all獲得并集排序

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

熱門標(biāo)簽:云南大數(shù)據(jù)外呼系統(tǒng) 怎么更改高德地圖標(biāo)注 博樂電銷機(jī)器人 上海市三維地圖標(biāo)注 電話機(jī)器人是電腦呼號(hào)嗎 南寧外呼系統(tǒng)招商 400電話到哪辦理優(yōu)惠 機(jī)器人打電銷電話 鄭州網(wǎng)絡(luò)外呼系統(tǒng)價(jià)錢

項(xiàng)目中有時(shí)候因?yàn)槟承┎豢赡孓D(zhuǎn)的原因使得表中存儲(chǔ)的數(shù)據(jù)難以滿足在頁(yè)面中的展示要求。之前的項(xiàng)目上有文章內(nèi)容的展示功能,文章分為三個(gè)狀態(tài)待發(fā)布、已發(fā)布、已下線。

他們?cè)跀?shù)據(jù)表中判斷狀態(tài)的字段(PROMOTE_STATUS)值分別為0、1、2。一開始的需求是文章只展示待發(fā)布和已發(fā)布,已發(fā)布排在待發(fā)布前面,并且兩種狀態(tài)下在根據(jù)自己的情況去排序。這樣的實(shí)現(xiàn)比較簡(jiǎn)單,如下的order by語(yǔ)句就可以實(shí)現(xiàn)了。

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

結(jié)果移交測(cè)試之后,產(chǎn)品覺得這里可以優(yōu)化下,文章的展示要改為已發(fā)布、待發(fā)布、已下線(沒錯(cuò),已下線它突然就要了,而且很傲嬌的排在了最后)。那怎么辦嘞?改表將已發(fā)布、待發(fā)布、已下線的PROMOTE_STATUS對(duì)應(yīng)值改為2、1、0肯定是行不通的,因?yàn)檫@個(gè)表其他的同事也用了。若是改了這里的對(duì)應(yīng)關(guān)系。其他同事的代碼的判斷邏輯都得動(dòng)。

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

最終的sql語(yǔ)句如下:

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)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

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

標(biāo)簽:定西 秦皇島 杭州 益陽(yáng) 寧夏 恩施 白銀 澳門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL如何使用union all獲得并集排序》,本文關(guān)鍵詞  MySQL,如何,使用,union,all,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL如何使用union all獲得并集排序》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MySQL如何使用union all獲得并集排序的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 定结县| 尉氏县| 桃园县| 民乐县| 蕉岭县| 珠海市| 光泽县| 祁阳县| 明光市| 大兴区| 黄骅市| 青海省| 贵溪市| 隆林| 黄骅市| 卓资县| 桦甸市| 绥中县| 滕州市| 闽侯县| 雷波县| 中山市| 石林| 桦南县| 长丰县| 秀山| 昌江| 晋城| 沁源县| 荆州市| 永春县| 泰宁县| 延川县| 新密市| 福安市| 广宁县| 平泉县| 天柱县| 东光县| 博客| 木兰县|