当前位置:首页 > 云计算 > 正文内容

mysql如何排序

2022-05-04 03:22:53云计算3

使用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教程

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

本文链接:https://www.xibujisuan.cn/14388.html

标签: Python