簡體   English   中英

如何從mysql數據庫中選擇隨機記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM