[英]How to select random record from mysql database
我需要從一個非常大的數據庫中隨機選擇說2000000條記錄。 我看了以前的問題。 因此,請勿將此問題標記為重復。 我需要澄清。 大多數答案建議使用ORDER BY RAND()
函數。 所以我的查詢將是:
SELECT DISTINCT no
FROM table
WHERE name != "null"
ORDER BY RAND()
LIMIT 2000000;
我希望隨機選擇每個記錄。 我不確定我是否了解這里的ORDER BY RAND()
效果。 但是我恐怕它將選擇一個隨機記錄,例如3498,然后從那里繼續選擇,例如,下一個記錄將是:3499、3500、3501等。我希望每個記錄都是隨機的,而不是從此處開始隨機記錄。
我如何選擇2000000個隨機記錄,其中每個記錄都是隨機選擇的? 您能簡化一下ORDER BY RAND()
作用嗎?
請注意,我使用的是Google BigQuery,因此此處的性能問題不會成為大問題。 我只想達到選擇隨機2000000條記錄的要求。
SELECT x
FROM T
ORDER BY RAND()
相當於
SELECT x
FROM (
SELECT x, RAND() AS r
FROM T
)
ORDER BY r
查詢為每一行生成一個隨機值,然后使用該隨機值對行進行排序。 如果包含限制:
SELECT x
FROM T
ORDER BY RAND()
LIMIT 10
這將從表中隨機選擇10行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.