需求

需求是,先根据A字段排序,排好序后得到一系列结果。然后再根据得到的结果根据B字段排序,得到最终结果。

按照这样排好序的顺序是这样的:把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部。

举个例子:

现在有一张博客表,我想先根据id排好序,然后再根据是否推荐(recommend字段为1就是推荐,0就是不推荐)排序。最后期望排序结果如下图所示:

可以看到,两者都进行了排序,但是优先级是 recommend > id。

SQL代码

废话不多说直接上代码:

SELECTb.`title`,b.`id`,b.`recommend`
FROMt_blog bORDER BY IF (b.`recommend`='1',0,1),b.`id` DESC

就是使用ORDER BY配合IF语句

这里需要注意:

IF (b.recommend=‘1’,0,1),b.id

这句话的意思是,我对id进行排序的同时,给id附加一个隐藏属性,这个隐藏属性,可以是0或者1

什么意思呢?就是在对id排序的时候,优先级是判断recommend是否为1,如果是,返回0,如果不是,返回1.

随后,先进行recommend属性的排序,隐藏属性拍完以后,再进行剩余id的排序,最终得到排序结果

本文部分参考:MySQL ORDER BY IF() 及多条件排序

SQL语句 ORDER BY 多条件排序优先级(嵌套if语句)相关推荐

  1. Order by 多条件排序

    首先了解一下基础知识: order by可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序. order by中如果定义了多个字段,则按照 ...

  2. python的基本语法if语句_Python基础之条件控制操作示例【if语句】

    本文实例讲述了Python基础之条件控制操作.分享给大家供大家参考,具体如下: if 语句 Python中if语句的一般形式如下所示: if condition_1: statement_block_ ...

  3. MySQL ORDER BY IF() 条件排序

    在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部 通过的方法就是IN语句(也可以通过IF语句) 自己做了个测试,如下,这个是表的所有 ...

  4. mysql order by if()或order by in()条件排序

    转载自:https://blog.csdn.net/weixin_38626799/article/details/80107697 在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单 ...

  5. 记录一次SQL语句ORDER BY 排序失效的问题

    我在工作中用到了借助SQL实现ORDER BY的多字段排序,但由于对 SQL 的语法了解不够导致踩到一个坑,这里做一下记录. 我的SQL 类似于下面这样: SELECT * FROM table1 O ...

  6. Python基础学习第三天——条件控制与while循环语句

    条件控制语句 1. 条件判断语句 当今世界,很多智能设备,极大方便了我们的生活.比如某种智能空调的设定为:如果室温高于32度就自动打开.这个如果--就--的逻辑就是条件判断.而如果--就--这种最基本 ...

  7. Java基础篇:嵌套 switch 语句

    可以将一个switch语句作为一个外部switch语句的语句序列的一部分,这称为嵌套switch语句.因为一个switch语句定义了自己的块,外部switch语句和内部switch语句的case常量不 ...

  8. MYSQL数据库(十)- 数据表的插入(insert)、删(delete)、改(update)、查(select)、group by 分组、having语句设置分组条件,order by查询结果排序,

    目录结构 本章目录 一.插入insert: 方法一:insert标准插入数据写法 方法二:set插入数据写法 方法三:请看本章最后一个案例 二.插入update: 方法一:单表更新记录 方法二:多表更 ...

  9. SQL语句按照姓名首字母排序

    Mysql 前言 UTF-8 GBK 前言   最近小咸儿做项目,根据业务需求,需要将查出来的人员姓名按照拼音首字母进行排序,小咸儿选择在SQL语句上对姓名字段进行排序,这样查出来的人员就已经是排好序 ...

最新文章

  1. Failed to load module canberra-gtk-module错误的解决方案
  2. 用html编辑csdn的方法
  3. python学习并发编程
  4. ajax联系人数,setInterval定时调用ajax实现在线人数统计
  5. 前端学习(1399):多人管理19项目拦截器
  6. win10录屏工具_win10录屏软件选哪款?没用过别后悔
  7. 关于容量设计、规划、治理 你知多少?
  8. 【hue】 hue+sentry界面没有添加角色的按钮
  9. P1070 道路游戏
  10. linux命令及其使用方法,Linux命令及其使用方法
  11. html和flash播放器区别,flash播放器和一般播放器有什么区别
  12. 使用pandoc 生成带中文的pdf
  13. 如何通过Python制作日历壁纸
  14. 开发一款好玩的地图app
  15. [实验室每日一题][20201124][Zip已知明文攻击]
  16. jQuery实现的地址选择
  17. 2022深圳杯A题论文
  18. 中科柏诚获“专精特新”称号,把一件事做到极致就是价值
  19. 4.Wireshark下载安装和使用教程
  20. 微型计算机的发展是以何种技术为特征标志的?微处理器

热门文章

  1. 音频如何分割成两段音频?这些实用方法值得收藏
  2. 三星i9220卡刷的刷机教程
  3. 灵魂课程 | 《许岑 | 如何成为有效学习的高手》
  4. hadoop集群正常启动,却无法访问web页面
  5. 电机控制系统php,NXP电机控制源代码库,最新版本,有参考价值
  6. mysql语句,根据传入的经纬度,查询距离最近的地点和距离
  7. Node-RED通过npm安装的方式对应卸载
  8. Vue-Vant—纯JS实现rem与px换算
  9. x平方检验计算_x2检验(chi-square test)或称卡方检验
  10. 别让甲醛检测仪继续“野蛮生长”