在MySQL中排序的结果不同

时间:2013-09-16 20:53:11

标签: mysql sql

我有一个有3列的表。 (日,月,年)

该陈述按时间顺序给出结果。

SELECT * FROM table WHERE = 'condition' ORDER BY year, month, day

我怎样才能按相反的顺序得到它?

3 个答案:

答案 0 :(得分:4)

您需要在查询中反转排序顺序:

SELECT * FROM table WHERE = 'condition' ORDER BY year DESC, month DESC, day DESC

但是,为年,月和日分别设置列会适得其反,因为所有这些列都可以用单个DATE类型列表示。这可以编入索引,并且在实践中要快得多:

SELECT * FROM table WHERE ... ORDER BY date_column DESC

答案 1 :(得分:1)

试试这个:

SELECT * FROM table
WHERE = 'condition'
ORDER BY year DESC, month DESC, day DESC

答案 2 :(得分:1)

您可以使用ASCDESC个关键字。

https://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html

例如:

SELECT *
FROM table WHERE = 'condition'
ORDER BY year DESC,
         month DESC,
         day DESC