按日期排序和按ID分组

时间:2014-04-18 06:21:48

标签: php mysql sql pdo sql-order-by

我在events_table中有一个事件列表,我以yyyy-mm-dd格式存储事件日期。 我需要按日期对事件进行排序:

(SELECT * from events_table ORDER BY date DESC)

但如果我在类似的日期有超过1个事件,那么排序工作是错误的。 我想按日期和ID排序,以查看正确的顺序(首先是新事件)。
我知道好的做法是使用timestamp,但是因为用户可以介绍一天或两天前的事件信息,而且这种方法在我的情况下不起作用。

2 个答案:

答案 0 :(得分:0)

您可以按多个字段进行排序。

SELECT * from events_table ORDER BY date DESC, id;

答案 1 :(得分:0)

如果您希望按日期先降序,然后按ID升序,请使用以下 -

SELECT * from events_table ORDER BY date DESC, id ASC;

如果您希望按日期先降序,然后按ID降序,请使用以下 -

SELECT * from events_table ORDER BY date DESC, id Desc;

如果id是主键和auto_increment那么就没有必要在日期使用排序,因为id的排序就足够了,并且会更加优化。

SELECT * from events_table ORDER BY id Desc;