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教程
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.