mysql排序的方法
这篇文章将为大家详细讲解有关mysql排序的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
使用SELECT抽取数据时,数据的显示是无序的,想要得到有序的数据,那么我们就需要使用ORDER BY子句进行排序。
ORDED BY 子句语法:
SELECT <列1>,<列2>,<列3>,......
FROM <表名>
ORDER BY <排序基准1>,<排序基准2>,.....
ORDED BY 子句(商品的销售单价升序排列)
其中desc表示降序,asc表示升序排列。
示例:
这里先创建一张普通的表
CREATETABLE`test1`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`name`varchar(50)NOTNULL,`date_time`datetimeNOTNULL,`status`int(5)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8
再添加一些测试数据
INSERTINTO`test1`VALUES(NULL,'测试1','2018-03-0511:09:00',1),(NULL,'测试2','2018-03-0611:09:00',1),(NULL,'abc','2018-03-0711:09:00',1),(NULL,'def','2018-04-0811:09:00',2),(NULL,'李某某','2018-04-1711:09:00',1),(NULL,'饭某某','2018-04-2013:09:00',2),(NULL,'赵','2018-04-2001:09:00',4),(NULL,'倩','2018-04-2811:09:00',2),(NULL,'andy','2018-04-3011:09:00',1),(NULL,'tony','2018-05-0811:09:00',4),(NULL,'tom','2018-05-0711:09:00',3),(NULL,'bill','2018-05-1811:09:00',3),(NULL,'james','2018-06-0711:09:00',4),(NULL,'anthony','2018-06-1811:09:00',2),(NULL,'盖茨','2018-04-2111:09:00',1),(NULL,'部长','2018-04-2411:09:00',4),(NULL,'李总','2018-04-2011:09:00',5),(NULL,'张总','2018-04-2911:09:00',2),(NULL,'王总','2018-04-1911:09:00',3),(NULL,'唐总','2018-05-0111:09:00',2);
有了数据,开始针对这些数据,做一些排序:
1、单列排序
SELECT*FROMtest1ORDERBYdate_time
默认升序,降序后面接"DESC"即可。
2、多列排序
SELECT*FROMtest1ORDERBY`status`,date_timeDESC
首先按`status`字段排序,若`status`相等,则按data_time排序。
3、自定义排序
SELECT*FROMtest1ORDERBYFIELD(`status`,3,2,4,1,5),date_timeDESC
使用"FIELD()"函数,可指定顺序。
4、其他条件排序
先按大于等于当前时间升序,再按小于当前时间降序,支持分页。
SELECT*FROMtest1ORDERBYdate_time<NOW(),IF(date_time<NOW(),0,date_time),date_timeDESC
关于mysql排序的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。