在MySQL中,这两个查询有区别吗?MySQL ORDER BY order
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
期望的行为:顺序(降序)通过“创建”(时间戳),但是当两个项目都那么同样的“创建”值回落到订货(DESC)使用Id。
在MySQL中,这两个查询有区别吗?MySQL ORDER BY order
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
期望的行为:顺序(降序)通过“创建”(时间戳),但是当两个项目都那么同样的“创建”值回落到订货(DESC)使用Id。
是的,是有区别的。默认顺序是升序,这样:
SELECT * FROM .... ORDER BY Created,Id DESC
将Created
升序排列,然后Id
下降
SELECT * FROM .... ORDER BY Created DESC, Id DESC
将Created
降序排列,然后Id
下降
当然有区别。第一个订单按CREATED
以升序排列,然后如果有多个排序则按ID
降序排列。第二种按CREATED
先降序排列,再按ID
递减,如果有倍数。
第二个应该做你想做的。
(当然,这引出了一个问题:为什么不干脆自己尝试一下,找出?)
我觉得第一个不会工作?
你可以做
SELECT * FROM .... ORDER BY Created ASC, Id DESC
SELECT * FROM .... ORDER BY Created DESC, Id ASC
,但如果你做不同的人会稍微放缓。
第一个将工作;如果未指定排序顺序,则使用“ASC”。 –
在第一个中,默认排序(ASC
)用于Created
列。
日期的快速排序以ASC - 升序排列。
因此,第一个查询将按升序排列项目,第二个查询按降序排列。
然后使用第二个。第一个是相同的:'ORDER BY创建ASC,Id DESC' –