我有一个表,如下:
ID digest(精华) view(流量0 datetime(时间)我想实现的排序是:今天的精华>今天的流量>昨天的精华>昨天的流量>前天的精华>前天的流量请问这个SQL语句怎么写呀~~~
ID digest(精华) view(流量0 datetime(时间)我想实现的排序是:今天的精华>今天的流量>昨天的精华>昨天的流量>前天的精华>前天的流量请问这个SQL语句怎么写呀~~~
调试欢乐多
1 0 20 2009-10-23
2 1 15 2009-10-23
3 0 15 2009-10-23
4 0 50 2009-10-22
5 1 5 2009-10-22结果
2 1 15 2009-10-23
1 0 20 2009-10-23
3 0 15 2009-10-23
5 1 5 2009-10-22
4 0 50 2009-10-22就是今天的精华放第一(digest),然后是流量(view),然后昨天的,类推
order by datetime desc,digest desc,view desc
如:
order by a desc, b asc;
order by a desc, b desc;
order by a asc, b desc;
...
如果不对,请提供一下你用的测试数据。mysql> select * from t_ljjable;
+------+--------+------+------------+
| id | digest | view | datetime |
+------+--------+------+------------+
| 1 | 0 | 20 | 2009-10-23 |
| 2 | 1 | 15 | 2009-10-23 |
| 3 | 0 | 15 | 2009-10-23 |
| 4 | 0 | 50 | 2009-10-22 |
| 5 | 1 | 5 | 2009-10-22 |
+------+--------+------+------------+
5 rows in set (0.00 sec)mysql> select * from t_ljjable
-> order by datetime desc,digest desc,view desc;
+------+--------+------+------------+
| id | digest | view | datetime |
+------+--------+------+------------+
| 2 | 1 | 15 | 2009-10-23 |
| 1 | 0 | 20 | 2009-10-23 |
| 3 | 0 | 15 | 2009-10-23 |
| 5 | 1 | 5 | 2009-10-22 |
| 4 | 0 | 50 | 2009-10-22 |
+------+--------+------+------------+
5 rows in set (0.00 sec)mysql>
基础上再按
digest 类推你可以看看desc asc语法
SELECT * from try1 order by datetime desc,digest desc,view desc