Mysql按两列排序

时间:2014-11-13 15:29:00

标签: php mysql sql

我有一张这样的表:

id     |date        |publisher
1       2014-11-07   100
2       2014-11-07   0
3       2014-11-07   100
4       2014-11-06   0
5       2014-11-06   100
6       2014-11-05   100
7       2014-11-05   0
8       2014-11-05   0
9       2014-11-05   100

我想得到这样的结果:

1       2014-11-07   100
3       2014-11-07   100
2       2014-11-07   0
4       2014-11-06   100   
5       2014-11-06   0
6       2014-11-05   100
9       2014-11-05   100
8       2014-11-05   0
7       2014-11-05   100

所以我试图按发布日期对表中的数据进行排序,并始终保持发布者的价值在我到目前为止的每一天都处于最佳状态:

select * from articles 
order by publisher DESC, date DESC

我得到了这个结果:

1       2014-11-07   100
3       2014-11-07   100
5       2014-11-06   100
6       2014-11-05   100
9       2014-11-05   100
2       2014-11-07   0
4       2014-11-06   0
7       2014-11-05   0
8       2014-11-05   0

哪个错了....

1 个答案:

答案 0 :(得分:1)

您必须按字段顺序颠倒顺序,如下所示:

select * from articles 
order by date DESC, publisher DESC

ORDER BY子句负责字段的顺序。在此查询中,我们告知:按日期顺序排序,如果两个或多个日期相等,则按照desc顺序在发布者上应用另一个订单。

修改 按照我的承诺,转到Sql Fiddle