2011-12-02 48 views
2

我使用此查詢:PHP的MySQL最喜歡的查詢,去年100個記錄

SELECT * from likes GROUP BY url ORDER BY count(*) DESC LIMIT 6 

從我的表「喜歡」獲取最喜歡的紀錄。它是完美的取得有史以來最受歡迎的內容。

但現在我想從最後100條記錄中選擇6條最喜歡的記錄。

查詢會是什麼?

+0

,你能告訴我們喜歡的表結構? –

回答

2
SELECT * FROM (select * from likes order by date desc limit 100) xx 
Group by URL order by count(*) limit 6 
+0

+1這是正確的答案。 – xdazz

+0

其工作,但沒有正確訂購數據....意味着不顯示最喜歡的第一個 –

+0

對不起,添加DESC後按數量(*)排序 – Sparky

2

獲取最後100個條目的主鍵並縮小查詢範圍。如果你有自動遞增鍵,可能非常容易。

SELECT * from likes 
    GROUP BY url 
    ORDER BY count(*) DESC 
    WHERE ID > MAX(ID)-100 
    LIMIT 6 
+0

+1比我開始輸入更簡單。 –

+1

你確定這個工作正常嗎?除了語法錯誤之外,如果刪除了一條記錄並使MAX(ID)-100出現故障,該怎麼辦? – ajreal

+0

我已經想出了類似於在表中使用序列號字段的東西....感謝您的幫助:) –