2012-09-28 104 views
0

在MySQL中,这两个查询有区别吗?MySQL ORDER BY order

SELECT * FROM .... ORDER BY Created,Id DESC 

SELECT * FROM .... ORDER BY Created DESC, Id DESC 

期望的行为:顺序(降序)通过“创建”(时间戳),但是当两个项目都那么同样的“创建”值回落到订货(DESC)使用Id。

+0

然后使用第二个。第一个是相同的:'ORDER BY创建ASC,Id DESC' –

回答

1

是的,是有区别的。默认顺序是升序,这样:

SELECT * FROM .... ORDER BY Created,Id DESC 

Created升序排列,然后Id下降

SELECT * FROM .... ORDER BY Created DESC, Id DESC 

Created降序排列,然后Id下降

0

当然有区别。第一个订单按CREATED以升序排列,然后如果有多个排序则按ID降序排列。第二种按CREATED先降序排列,再按ID递减,如果有倍数。

第二个应该做你想做的。

(当然,这引出了一个问题:为什么不干脆自己尝试一下,找出?)

0

我觉得第一个不会工作?

你可以做

SELECT * FROM .... ORDER BY Created ASC, Id DESC 
SELECT * FROM .... ORDER BY Created DESC, Id ASC 

,但如果你做不同的人会稍微放缓。

+0

第一个将工作;如果未指定排序顺序,则使用“ASC”。 –

0

在第一个中,默认排序(ASC)用于Created列。

0

日期的快速排序以ASC - 升序排列。

因此,第一个查询将按升序排列项目,第二个查询按降序排列。