博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL --两个条件排序
阅读量:6847 次
发布时间:2019-06-26

本文共 1043 字,大约阅读时间需要 3 分钟。

hot3.png

最近做工程时,遇到一个业务需求,需要用到两层排序。

需求:获取人物列表,排序条件:1.按照该人物是否置顶排序;2.按照该人物的添加时间倒序排序

SQL如下

        SELECT        tp.PERSON_ID,        tp.PERSON_IMG_URL,        tp.PERSON_NAME,        tp.COMPANY,        tp.JOB_POSITION,        tp.PERSON_STORY_TITLE,        tp.PERSON_STORY_SUMMARY,        tp.UPD_TIME as ADD_TIME        FROM        t_person tp        WHERE        tp.PUBLIC_FLAG = 1        AND        tp.USE_FLAG = 1        AND        tp.AUDIT_STATUS in ('10','11','20')        
            AND            tp.UPD_TIME <= #{lastTime}                
            AND            tp.PERSON_NAME LIKE            concat(concat('%',#{searchContent}),'%')                ORDER BY STIKY_FLAG DESC,tp.UPD_TIME DESC        LIMIT #{pageIndex}

如上SQL重点关注如下这里

ORDER BY STIKY_FLAG DESC,tp.UPD_TIME DESC

很明显order by 是排序语句

条件1:STIKY_FLAG DESC,按照置顶区分降序排序,置顶区分只有0和1两种状态,1:置顶;0:不置顶。所以这里用STIKY_FLAG DESC,如果STIKY_FLAG=1,则该人物排在前面;否则排在后面,刚好是降序排列。

条件2:tp.UPD_TIME DESC,按照更新时间倒序排列,这个就不用过多解释,大多数业务都是如此,很好理解。

转载于:https://my.oschina.net/u/2312022/blog/532426

你可能感兴趣的文章
三.Object-C 方法,封装 (下)
查看>>
2003年9月全国计算机等级考试二级C语言笔试试题及答案
查看>>
重复制造轮子之——字节数组写入文件
查看>>
IMP 导入表结构到指定用户
查看>>
windows下FTP连接linux简单演示-dos操作
查看>>
redhat6启动U盘安装
查看>>
H3C 交换机 和windows NPS结合实现内网802.1X认证
查看>>
device "eth0" does not seem to be present, delaying initialization
查看>>
mysql日志
查看>>
深入理解jQuery插件开发
查看>>
Hibernate 马上入门(一)
查看>>
mysql复制原理
查看>>
几款利用ps技术处理的图片
查看>>
linux重定向
查看>>
基于CenOS搭建VNC远程桌面服务
查看>>
正则表达式的基本知识点
查看>>
Using Python With Oracle Database 11g 精简版
查看>>
搭建openstack实战部署
查看>>
cisco ipsec *** 配置
查看>>
coursera专项课程——程序设计与算法简介
查看>>