2
這似乎很容易做到。我的文章的表有相關與這個問題了以下字段:從不同類別中選擇物品,包括沒有類別的物品
id - INTEGER(11) AUTO_INCREMENT
category_id - INTEGER(11) DEFAULT(-1)
當文章有一個類別,它的ID會在現場CATEGORY_ID。當它沒有類別時,該列的值爲-1。
我想要做的是從這篇文章表中選擇三個不同類別的隨機文章。僅這是很簡單的事:
SELECT id FROM articles GROUP BY category_id ORDER BY RAND() LIMIT 3;
不過,我不想與任何類別組的文章爲一個單一的品類,像以前的查詢會做。也就是說,我想將每篇文章的category_id都看作是一個單獨的類別。我怎樣才能做到這一點?
按類別分組的子查詢可能不是非常隨機的。選擇是任意的,但是如果表沒有改變,那麼從一個查詢到下一個查詢可能是一致的。 – Barmar
@Barmar的確如此。我認爲使查詢真正隨機,但決定反對它,因爲它似乎這個查詢已經很昂貴,因爲它是。 – FuzzyTree