龙空技术网

mysql条件排序的问题,你都了解吗?

张三模仿小帅说故事 237

前言:

如今你们对“mysql条件函数”可能比较讲究,看官们都需要了解一些“mysql条件函数”的相关资讯。那么小编也在网络上汇集了一些对于“mysql条件函数””的相关资讯,希望咱们能喜欢,兄弟们快快来学习一下吧!

做为一个码农,一个表里,有状态, 有时间,排序的时候,根据不同的状态,来按不同的时间方式来排序。如下:

默认一张表的数据,如果要将t_status=0的created_at降序,t_status=1的created_at升序,一开始,我是一脸“??”的,百度很久以后,才发现还可以这样子来,

使用order by if() 来判断,根据状态来判断时间的排序。

如果再遇到,要将状态按自己的要求排序,如t_status为2的排在1前面,0排在t_status的2的前面,如果没有搞过,你是不是又一脸“??”,这个时候可以,使用field()函数

至于性能,如果需要这么复杂的排序,还考虑啥性能。

用到的sql语句有:

select * from test1 order by if(t_status=0, created_at, 0) desc, if(t_status=1, created_at, 0) asc;
select * from test1 order by field(t_status,0,2,1), if(t_status=1, created_at, 0) desc, if(t_status=0, created_at, 0) asc;

标签: #mysql条件函数