【笔记】MySQL使用ORDER BY IF进行条件排序

测试数据

在这里插入图片描述

按照主键反排序
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()函数组合使用

IF()函数文档
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if

上面的SQL示例中,1和0可以灵活使用

IF (ui.`status`=4,99,9)#4在后面
IF (ui.`status`=4,9,99)#4在前面

最后,感谢搭档"老张"提供的思路!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值