我有一張表,其中有三個字段,數據類型爲date
,int
和bigint
。MySQL按不同排序順序對多列進行排序
我想使用所有這三列對我的選擇查詢進行排序。我想按降序排列它們。例如:
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
是否有可能從所有三列的最大值開始獲得結果。 像最新的日期,最高的intnum和最高的bigintnum。
我有一張表,其中有三個字段,數據類型爲date
,int
和bigint
。MySQL按不同排序順序對多列進行排序
我想使用所有這三列對我的選擇查詢進行排序。我想按降序排列它們。例如:
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
是否有可能從所有三列的最大值開始獲得結果。 像最新的日期,最高的intnum和最高的bigintnum。
沒有
你的查詢確實是拿到max date
,其次是max date
的max intnum
隨後的max date
換句話說,max intnum
的max bigintnum
,你的查詢將不會返回最大所有三列的價值
它按日期先訂購,然後是intnum,然後是bigintnum 結果會是這樣的
2011-07-20 12 14
2011-07-20 12 13
2011-07-20 11 16
2011-07-20 10 12
2011-07-19 20 15
2011-07-18 60 30
2011-07-18 50 14
不可能從所有三列中的最大值開始獲得結果。像最新的日期,最高的intnum和最高的bigintnum。
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
正如你所知道的ORDER BY呢,如果你by子句必須按順序多列,它會通過日期遞減一級,然後在第一次約會就通過INTNUM說明通過BIGINTNUM順序,然後順序。
您提供的查詢看起來有效。 PS:mysql dba詢問sql基礎問題看起來很有趣;-) – zerkms
@Devjosh:那又如何?它**有可能**得到所有字段後代排序的結果集,從每個列的最高值開始。 – zerkms
@zerkms,MySQL數據庫管理員:是的,這是可能的:),我們的同事發佈的問題沒有錯 – Devjosh