[英]How to select a random sample of records from MySQL?
請考慮下表:
tweets
-----------------------
id tweet class
-----------------------
1 Foo bar baz! 2
2 Lorem ipsum 2
3 Foobar lorem 3
4 Activi set 1
5 Baz baz bar? 3
7 Dolor mez foo 3
8 Samet set bar 1
實際上,該表具有600,000條記錄,但是如示例表中所示,某些id
已被刪除(因此,最高id
> 600,000)。 class
可以是1
, 2
或3
。
我需要隨機選擇 1200條推文,每個class
400條。 這可能與一個查詢有關嗎?
如果class
(3)的可能值數量有限,則可以輕松地使用一組UNION
查詢來完成,每個查詢都有自己的ORDER BY RAND()
和LIMIT 400
:
(SELECT id, tweet, class FROM tweets WHERE class = 1 ORDER BY RAND() LIMIT 400)
UNION
(SELECT id, tweet, class FROM tweets WHERE class = 2 ORDER BY RAND() LIMIT 400)
UNION
(SELECT id, tweet, class FROM tweets WHERE class = 3 ORDER BY RAND() LIMIT 400)
為了將ORDER BY
應用於每個UNION
組,該組必須包含在()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.