之前,我解釋我的問題,我會很快去了表的結構是怎樣:獲取4個最新行,從同桌
類型:MySQL 帖子/表主題:
int int** UNIX Time Int Int
--------------------------------------------------
| id | category | postdate | topic_id | is_topic |
--------------------------------------------------
| 1 | a | 12345678 | 1 | 1 |
--------------------------------------------------
| 2 | a | 12345678 | 1 | 0 |
--------------------------------------------------
| 3 | b | 12345678 | 3 | 1 |
--------------------------------------------------
| 4 | b | 12345678 | 3 | 0 |
--------------------------------------------------
| 5 | c | 12345678 | 5 | 1 |
--------------------------------------------------
| 6 | c | 12345678 | 5 | 0 |
--------------------------------------------------
**我正在使用字母製作更容易閱讀表
我想檢索每個類別的4個最新的行,並且我能夠從GROUP BY的每個類別中獲取1個最新的行,但是我不知道如何爲每個類別獲得多個。
我已經試過這樣的事情:
SELECT *
FROM posts p
WHERE NOT EXISTS
(
SELECT *
FROM posts
WHERE category = p.category
LIMIT 4
)
我也試圖與一些在這裏的一些其他的答案在SO提供的其他答案的人的工作,但我似乎並沒有能夠使它們適合我的目的。
我完全迷失在這裏,因爲當涉及到這些更復雜的查詢時,mysql並不是我的強項。
任何幫助或指針在正確的方向將非常感激!
謝謝!
UPDATE:請注意,類別的數量不是靜態的,並且會改變。
感謝您的回覆!我會給它一個擺動。 除了使用會話變量(?)這個事實之外,我不太瞭解這個查詢 - 因爲我希望更多地瞭解它的工作原理,我真的很感謝它只是對它做了什麼:)。謝謝一堆! – MrE
肯定是給我幾分鐘。 –
我真的很感激!非常感謝! – MrE