我有一张这样的桌子:
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因此,我正在尝试按发布日期对表中的数据进行排序,并始终将publisher值放在最前面,直到目前为止:
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这是错误的..。
发布于 2014-11-13 23:40:19
您必须颠倒order by字段的顺序,如下所示:
select * from articles
order by date DESC, publisher DESCORDER BY子句负责字段的顺序。在此查询中,我们告诉:按日期按降序排序,如果两个或更多日期相等,则按降序对publisher应用进一步的排序。
按照我的承诺,编辑,转到Sql Fiddle
https://stackoverflow.com/questions/26912453
复制相似问题