我可以通过两列进行查询吗?

时间:2011-06-29 20:58:09

标签: mysql sql sql-order-by

我有一个徒步旅行网站。当人们搜索徒步旅行时,他们会关心两个问题:

  1. 与它们的距离有多近,
  2. 活动何时
  3. 因此,有时我需要首先按日期显示搜索结果,但如果日期相同,则需要按距离排序。反之亦然。

    在SQL中这样的事情可能吗?

3 个答案:

答案 0 :(得分:5)

只需依次附加order-by语句即可。我很确定:

SELECT 
  Distance,
  EventTime,
FROM Table1
ORDER BY Distance DESC, EventTime ASC
  • 注意,您可以在同一查询中按降序和升序排序。

答案 1 :(得分:3)

ORDER BY子句是SELECT语句的最后一个子句。它采用列表,以逗号分隔。该列表从左到右处理,所以

ORDER BY distance, event_start

...将先按距离排序。在存在重复距离的情况下,将根据event_start列值对这些距离进行排序。默认情况下,排序采用ASCending顺序 - 您需要在逗号之前指定DESC以反转逻辑。 IE:

ORDER BY distance DESC, event_start

...将最大距离放在结果集的顶部。

答案 2 :(得分:0)

select * from table order by field1, field2;