我有一张这样的表:
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
哪个错了....
答案 0 :(得分:1)
您必须按字段顺序颠倒顺序,如下所示:
select * from articles
order by date DESC, publisher DESC
ORDER BY子句负责字段的顺序。在此查询中,我们告知:按日期顺序排序,如果两个或多个日期相等,则按照desc顺序在发布者上应用另一个订单。
修改强> 按照我的承诺,转到Sql Fiddle