在MySQL中,这两个查询之间有区别吗?
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
所需行为:按“已创建”(时间戳)排序(降序)但当两个项目具有相同的“已创建”值时,则使用该ID回退到排序(desc)。
答案 0 :(得分:1)
是的,有区别。默认顺序为升序,因此:
SELECT * FROM .... ORDER BY Created,Id DESC
将按Created
升序排序,然后Id
降序
SELECT * FROM .... ORDER BY Created DESC, Id DESC
将按Created
降序排序,然后按Id
降序排序
答案 1 :(得分:0)
当然有区别。第一个按CREATED
按升序排序,然后如果有多个,则按ID
降序对这些行进行排序。第二个按CREATED
按降序排序,然后按ID
降序排列,如果有倍数。
第二个应该做你想做的事。
(当然,这引出了一个问题:你为什么不亲自试一试?)
答案 2 :(得分:0)
我认为第一个不会工作?
你可以做到
SELECT * FROM .... ORDER BY Created ASC, Id DESC
SELECT * FROM .... ORDER BY Created DESC, Id ASC
但是如果你做不同的话,它会稍微减慢。
答案 3 :(得分:0)
在第一个中,默认排序(ASC
)用于Created
列。
答案 4 :(得分:0)
日期的默认排序是ASC - 升序。
因此,第一个查询将按升序排列项目,第二个查询将按降序排列。