2012-10-27 25 views
1

我目前運行此查詢:設置一個MySQL表的默認模式,以逆轉

SELECT t.videolink, t.userid, t.tag 
    FROM (SELECT * FROM tagstrend ORDER BY timestamp DESC) AS t 
     WHERE t.timestamp > ? 
     GROUP BY t.tag 
     ORDER BY SUM(t.tagcount) DESC 
     LIMIT ?, 20; 

什麼我做的是扭轉了表,我從以前我跑其餘選擇訂單的查詢,因爲當我使用「GROUP BY」時,我需要獲取數據庫中最近行的最高結果。

但是,這樣做會影響查詢的性能/速度,因爲它需要在查詢表之前顛倒表的順序。

我的問題是,有沒有辦法設置表的默認順序被顛倒?因爲我會一直以相反的順序從這張表中選擇。

除非有人知道數據庫中最近一行的分組方式嗎? 「

+0

你爲什麼要在'SELECT *'上調用'SELECT',而不是隻寫一個你想要的函數? – tadman

+0

因爲我需要整個表格,所以我只需要以相反的順序@tadman – stuyam

+0

由於您是通過聚合函數進行排序,所以結果的順序與原始表的順序無關。 – Barmar

回答

2

」但是這樣做會影響查詢的性能/速度,因爲它需要在查詢表之前顛倒表的順序。「

我不認爲這是真的。 Order By .... ASC和Order By .... DESC應該具有相同的性能。測試一下,看看。