189 8069 5689

mysql怎么多条件排序 数据库多条件排序

mysql怎么才能进行多条件排序

如果楼主是新手的话,建议还是百度一下mysql的基础语句用法,order by可以实现按照某个列来排序,加上逗号就可以多条件执行。先按照第一个排序,之后按照第二个进行排序

十余年的紫云网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整紫云建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“紫云网站设计”,“紫云网站推广”以来,每个客户项目都认真落实执行。

mysql数据库怎么可以两个条件排序?

可以的,order by多个字段规则是这样的,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。

举个例子

按照c1排序的结果如上图,然后我们按照c1增序,c2降序排列,结果如下:

MySql的几种排序方式

1、单列排序

SELECT * FROM test1 ORDER BY date_time

默认升序,降序后面接"DESC"即可。

2、多列排序 

SELECT * FROM test1 ORDER BY `status`, date_time DESC

首先按`status`字段排序,若`status`相等,则按data_time排序。

3、自定义排序

SELECT * FROM test1 ORDER BY FIELD(`status`, 3, 2, 4, 1, 5), date_time DESC

使用"FIELD()"函数,可指定顺序。

4、其他条件排序

先按大于等于当前时间升序,再按小于当前时间降序,支持分页。

SELECT * FROM test1 ORDER BY date_time NOW(), IF(date_time NOW(), 0, date_time), date_time DESC

附加SQL脚本:

CREATE TABLE `test1` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`date_time` datetime NOT NULL,

`status` int(5) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

INSERT INTO `test1` VALUES

(NULL, '测试1', '2018-03-05 11:09:00', 1),(NULL, '测试2', '2018-03-06 11:09:00', 1),(NULL, 'abc', '2018-03-07 11:09:00', 1), 

(NULL, 'def', '2018-04-08 11:09:00', 2),(NULL, '李某某', '2018-04-17 11:09:00', 1),(NULL, '饭某某', '2018-04-20 13:09:00', 2),

(NULL, '赵', '2018-04-20 01:09:00', 4),(NULL, '倩', '2018-04-28 11:09:00', 2),(NULL, 'andy', '2018-04-30 11:09:00', 1),

(NULL, 'tony', '2018-05-08 11:09:00', 4),(NULL, 'tom', '2018-05-07 11:09:00', 3),(NULL, 'bill', '2018-05-18 11:09:00', 3),

(NULL, 'james', '2018-06-07 11:09:00', 4),(NULL, 'anthony', '2018-06-18 11:09:00', 2),(NULL, '盖茨', '2018-04-21 11:09:00', 1),

(NULL, '部长', '2018-04-24 11:09:00', 4),(NULL, '李总', '2018-04-20 11:09:00', 5),(NULL, '张总', '2018-04-29 11:09:00', 2),

(NULL, '王总', '2018-04-19 11:09:00', 3),(NULL, '唐总', '2018-05-01 11:09:00', 2);

参考的这篇文档Mysql排序方式

mysql 多条件数据排序

如果置顶、会员时长、更新时间分别对应了表中的一个字段,那么是可以的

假定这几个字段是

top(是否置顶,1.置顶 0.不置顶)

vipDays 会员时长

updateTime (更新时间)

那么sql可以这么写

select * from table where type=1 order by top desc,vipDays desc,updateTime desc

效果就是先top倒序(置顶的在前),top相同的就按会员时长倒序(时长越长越在前),若会员时长也相同就按更新时间倒序(最新的在前)

mysql多条件排序 怎么写

在数据库查询时,常常需要排序,而有时排序条件可能有多个。

如数据库:

a b

1 103

1 101

2 201

2 203

1 102

2 202

排序后: a b

1 103

1 102

1 101

2 203

2 202

2 201

语句:

SELECT A.a , A.b FROM TABLE A ORDER BY A.a ASC , A.b DESC

其中ASC连接多条排序,且与后一条查询之间有逗号隔开!


网站题目:mysql怎么多条件排序 数据库多条件排序
标题链接:http://jkwzsj.com/article/hijosc.html

其他资讯