在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL怎么使用union all获得并集排序

109次阅读
没有评论

共计 1678 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 MySQL 怎么使用 union all 获得并集排序,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

项目中有时候因为某些不可逆转的原因使得表中存储的数据难以满足在页面中的展示要求。之前的项目上有文章内容的展示功能,文章分为三个状态待发布、已发布、已下线。

他们在数据表中判断状态的字段(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 all 获得并集排序”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1678字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 天天干夜夜夜操 | 日韩一级片免费 | 九九精品99久久久香蕉 | 一区二区三区欧美日韩 | 国产精品视频国产永久视频 | 日韩a级成人免费无码视频 日韩a级片视频 | 丰满多毛少妇做爰视频 | 欧美毛片日韩一级在线 | 久久午夜福利电影 | 国产精品久久成人网站 | 久久精品图片 | 亚洲狠狠婷婷综合久久久久图片 | 国产公开久久人人97超碰 | 精品久久久久久中文字幕人妻最新 | 午夜影院在线观看视频 | 久草成人在线视频 | 三级国产4国语三级在线 | 国内自拍露脸普通话对白在线 | 97成人网在线碰碰碰 | 一级a毛片免费观看久久精品 | 久久97久久97精品免视看 | 四虎免费在线观看 | 黑丝视频在线观看 | 免费观看黄色小视频 | 成年人网站免费在线观看 | 激情亚洲一区国产精品 | 青青草偷拍视频 | 成人a大片高清在线观看 | 午夜大片男女免费观看爽爽爽尤物 | 久久久www免费人成看片 | 一插综合网 | 久久er99热这里只是精品 | 日韩免费一区二区三区 | 一区二区久久久久草草 | 久久99精品国产一区二区三区 | 非洲黑人性xxxx精品 | 黄色在线视频免费看 | 波多野结av衣东京热无码专区 | 精品人妻码一区二区三区 | 黄色a级免费网站 | 亚洲三级在线看 |