MySQL ORDER BY IF() 及多条件排序_Len°的博客-CSDN博客_order by if


本站和网页 https://blog.csdn.net/weixin_38626799/article/details/80107697 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

MySQL ORDER BY IF() 及多条件排序_Len°的博客-CSDN博客_order by if
MySQL ORDER BY IF() 及多条件排序
置顶
Len°
已于 2022-05-19 10:15:52 修改
34737
收藏
34
分类专栏:
mysql
文章标签:
数据库
于 2018-04-27 14:33:56 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38626799/article/details/80107697
版权
mysql
专栏收录该内容
7 篇文章
0 订阅
订阅专栏
碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部
通过的方法就是IN语句(也可以通过IF语句)
自己做了个测试,如下,这个是表的所有内容
使用ORDER BY配合IF语句
比如我想将species为snake的行数,单独列出来,我可以这样查询
SELECT * FROM pet ORDER BY if (species='snake',0,1),species;
结果如下
我们可以看到,species为snake的行数,被强行放置到了查询结果开头
这是怎么做到的呢?
这里需要注意:
if (species='snake',0,1),species;
这句话的意思是,我对species进行排序的同时,给species附加一个隐藏属性,这个隐藏属性,可以是0或者1
什么意思呢?就是在对species排序的时候,优先级是判断species是否为snake,如果是,返回0,如果不是,返回1.
随后,先进行species隐藏属性的排序,隐藏属性拍完以后,再进行剩余species的排序
也就是说,你可以把这个 if 语句,看成是一个独立的column
那如果我们想把snake的这一行放在查询结果尾部呢?
那你可以这样写  SELECT * FROM pet ORDER BY if(species='snake',0,1) DESC,species;
正如上面一段说的,你可以把if 语句看成是独立的column,所以你也可以为他添加排序条件ASC或者DESC,当然默认是ASC,可以不写。
这样,查询就等于第一步是查询隐藏属性0,1,然后进行DESC排序,因为species=snake的返回值是0,所以进行倒序排列时,就被排在了最后
以此类推,你在进行隐藏属性优先排序的同时,对于剩下的排序,你也可以另外进行ASC或者DESC的排序,就不截图了。
使用ORDER BY配合IN语句
上面一个是满足单个条件,返回0或者1,那如果需要用到一个范围呢?你可以使用IN语句
比如下面,我要求把出生日期为1993-02-04或者1989-05-13的行数,排在最后
SELECT * FROM pet ORDER BY birth IN('1993-02-04','1989-05-13'),birth;
这样的话,birth IN语句会进行判断,如果birth满足条件,返回1,不满足,返回0
所以,满足条件的两行,因为返回值是1,进行ASC排序的时候,就被放置在了最后。
备注:ORDER BY 子句条件最多可以放16个,用“,”隔开就行。可以是升序(ASC)也可以是降序(DESC),默认是升序。
如:ORDER BY species ,birth DESC ,sex ,owner
关注博主即可阅读全文
Len°
关注
关注
10
点赞
34
收藏
打赏
评论
MySQL ORDER BY IF() 及多条件排序
在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部通过的方法就是IN语句(也可以通过IF语句)自己做了个测试,如下,这个是表的所有内容使用ORDER BY配合IF语句比如我想将species为snake的行数,单独列出来,我可以这样查询SELECT * FROM pet ORDER BY if (species='snake',0,...
复制链接
扫一扫
专栏目录
MySQL中Order By多字段排序规则代码示例
09-09
主要介绍了MySQL中Order By多字段排序规则代码示例,小编觉得挺不错的,这里给大家分享下,需要的朋友可以参考。
Android: how to set the reference order(/search order) for jar/aar.
coldicecn的博客
10-17
303
how to set the reference order(/search order) for jar/aar
评论 9
您还未登录,请先
登录
后发表或查看评论
mysql order by if()或order by in()条件排序
热门推荐
ZhangYaohui专栏
09-11
1万+
转载自:https://blog.csdn.net/weixin_38626799/article/details/80107697
在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部。
通过的方法就是IN语句(也可以通过IF语句)
自己做了个测试,如下,这个是表的所有内容
使用ORDER BY配合if语...
casewhen多条件查询_SQL用多个条件进行排序;以及根据一个条件的多个值,进行排序...
weixin_39813009的博客
11-28
1041
概述多条件排序可以通过在order by语句后面使用case when then条件语句来实现。select * from 表名 ORDER BY case when 条件 then 0 else 1 end下面用实例演示下:实例1.创建表case_test共有id,case_type,case_location,case_way四个字段。create table case_test(id num...
9.使用MySQL分组排序数据
最新发布
weixin_64765980的博客
11-08
197
比如:前面学了聚集函数,是统计所有数据的信息,以花为例,想要统计每个种类花的总价格怎么办?分组允许把数据分为多个逻辑组,以便对每个组进行聚集运算。
【order by 通过if判断条件】
weixin_44181467的博客
01-18
312
七天前的按照时间升序,七天内的按照状态升序
IF(DATE_SUB( CURDATE( ), INTERVAL 7 DAY ) < t1.insert_time,t1.publish_status,t1.insert_time)
mysql 多层次多条件排序
Li_Chunxiao_的博客
05-09
851
首先说一下最近接到的一个需求
要求: 在商品详情页显示类似商品列表,
商品详情类别与查询结果要求
1. 类别相同
2. 第一优先级(供应商与品牌均相同)
3. 第二优先级(供应商相同品牌不同)
4. 第三优先级(供应商不同品牌相同)
5. 第四优先级(供应商与品牌均不相同)
6. 以上同一优先级时按销量倒叙
7. 每页显示20条记录
表结构及相关字段如下:
表名: 商品表: product
字段: 类别: category_id, 商品编码: spu_code, 供应商编号: supp
mysql中order by多条件排序的写法
bobozai86的博客
03-04
1万+
我们在查询数据的时候,有时会用到多字段排序,下边让我们一起来看看mysql的多条件排序写法。
mysql多条件排序使用”,“隔开,例如:select * from 表 order by 列1 asc,列2 asc
mysql会对查询先按照列1的值排序,当列1中有重复数据的时候、在按列2里面的值来排序,如果有列3就是按照列2里面的重复数据来排列,以此类推。
ORDER子句按一个或多个(最多不超...
mysql order by if函数_mysql排序之ORDER BY IF、ORDER BY配合IN、TIMESTAMPDIFF、TIMESTAMPADD、FIELD...
weixin_39557583的博客
01-19
167
1、order by if 排序SELECT * FROM pet ORDER BY if (species='snake',0,1),species;--species为snake的行数放置到了查询结果开头,再按照spercies排序;snake的这一行放在查询结果尾部用SELECT * FROM pet ORDER BY if(species='snake',0,1)DESC,species...
【笔记】MySQL使用ORDER BY IF进行条件排序
MrXionGe的博客
05-19
477
测试数据
按照主键反排序
SELECT * FROM user_info ui ORDER BY ui.id DESC;
按照主键反排序,但是"status = 4"的数据排在最后
SELECT * FROM user_info ui ORDER BY IF (ui.`status`=4,1,0),ui.id DESC;
查看结果集
"status = 4"的数据在后面,其他的数据在前面,且都按照ID进行了反排序
注意:ORDER BY IF并不是一个SQL函数,而是ORDER BY与IF()函数
mysql中使用order by 排序时使用if()函数应用场景。
qq_40795958的博客
08-11
570
mysql中使用order by 排序时使用if()函数应用场景。
Order By 多条件排序【MySQL】
qq_35529931的博客
10-29
470
mysql 多字段排序,原来是需要逗号隔开,进行描写条件。之前都以为是作为一个,直接逗号一起就行;根据两个条件进行排序查询,开始以为很简单的写了SQL。以为结束了,仔细才发现,后续的没有根据id 进行排序。碰到一个SQL的排序问题,先排序后分页。最终将SQL修改为如下: 完成了该功能。开始就很简单的写了根据多条件的排序。记录一下这个小知识点。
mysql 多条件排序查询
别在熬夜了!
06-04
3348
select * from test ORDER BY `password` DESC,SUBSTRING(name,1,2) DESC,id DESC
SQL中order by里面可以加条件
mazhongjia的博客
06-16
3770
下面实现:ID列放在最前面,其他列按照null_flag desc进行排序
select table_id, COLUMN_NAME_ENG, null_flag,Mdms_flag from sys_column_info where TABLE_ID='407' and Mdms_flag = 1
ORDER BY case
WHEN COLUMN_NAME_ENG <> 'id' THEN 1
ELSE 0
END, null_flag desc
...
Order by 多条件排序
程序员的博客
12-07
6081
首先了解一下基础知识:
order by可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序。
order by中如果定义了多个字段,则按照字段的先后顺序排序。
order by通常放在SQL语句的最后。
最近由于需要对一张表进行排序,由前端传递排序字段以及排序规则,由于忽视了多条件排序规则,所以导致BUG。
首先来看一下表数据...
MySQL ORDER BY 加条件
Elvin的博客
12-15
1479
-- 优先排序id=15的 ,然后排序创建时间
ORDER BY id=15 DESC,create_time DESC;
mysql实现多条件排序_mysql多条件排序_MySQL
weixin_34722015的博客
02-02
1898
bitsCN.commysql多条件排序在数据库查询时,常常需要排序,而有时排序条件可能有多个.如数据库: a b 1 103 1 101 2 201 2 203 1 102 2 202排序后: a b 1 103 ...
mysql多条件排序_mysql order by 多个字段排序
weixin_42676824的博客
01-18
5403
工作中需用到order by后两个字段排序,但结果却产生了一个Bug,以此备录。【1】复现问题场景为了说明问题,模拟示例数据库表students,效果同实例。如下语句Sql_1:1 SELECT * FROM students st ORDER BY st.sAge, st.sGrade DESC;(1)预期结果:sAge和sGrade两个字段都按降序排列(2)实际结果:sAge按升序排序,sG...
mysql 中 order by in 和order by if 的用法
a28465a的博客
08-19
2201
mysql 中 order by in 和order by if 的用法
一、order by in
举例:不知道大家有没有做过SQL zoo的题目,里面有一题就是对这个知识点的考查
题目如下:
可以将表达式主题IN(“化学”,“物理”)用作值-它可以是0或1。 显示1984年获奖者和主题(按主题和获奖者名称排序);但最后列出化学和物理。
其实这个题目已经给提示了,直接运行初始代码可以看到
subject in 符合里面的条件的话是1,否则是0.明白这个原理之后就可以来看看正确答案了
SELECT
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:精致技术
设计师:CSDN官方博客
返回首页
Len°
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
41
原创
9616
周排名
7万+
总排名
17万+
访问
等级
1608
积分
1202
粉丝
57
获赞
37
评论
189
收藏
私信
关注
热门文章
MySQL ORDER BY IF() 及多条件排序
34731
git 还原到某次commit并强制推送远程
27937
使用Windows命令行启动关闭服务(net start)
11521
java数组判断包含某个数值
10697
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法
8927
分类专栏
Redis
2篇
Hadoop
1篇
python
11篇
java
21篇
eclipse
6篇
mysql
7篇
微信开发
1篇
前端
1篇
spring boot
3篇
docker
3篇
vscode
1篇
git
4篇
注解
2篇
最新评论
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法
Len°:
'require123456' 这里要有个空格 'require 123456'
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法
joehall_happyTime:
FATAL CONFIG FILE ERROR (Redis 7.0.4) ***
Reading the configuration file, at line 2276
>>> 'require123456'
Bad directive or wrong number of arguments
java数组判断包含某个数值
王三胖:
第一个代码里的Arrays没打对哥
MySQL ORDER BY IF() 及多条件排序
我项伟伟!:
写得好
git 还原到某次commit并强制推送远程
Nu_:
OK,感谢!
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
idea 对指定的commit记录打tag并推送远程
基于Hue,Dolphinscheduler,HIVE分析数据仓库层级实现及项目需求案例实践分析
Linux 安装docker报cannot connect to the docker daemon at unix:///var/run/docker.sock.
2022年2篇
2021年5篇
2020年7篇
2019年11篇
2018年16篇
2017年11篇
目录
目录
分类专栏
Redis
2篇
Hadoop
1篇
python
11篇
java
21篇
eclipse
6篇
mysql
7篇
微信开发
1篇
前端
1篇
spring boot
3篇
docker
3篇
vscode
1篇
git
4篇
注解
2篇
目录
评论 9
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
Len°
网络乞丐在线乞讨,救救孩子吧
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值