擅长:python、mysql、java
<p>这在大多数情况下都有效:</p>
<pre><code>select ext_id
from table_name t
where rand() < 2000 / 10000000
order by rand()
limit 1000;
</code></pre>
<p>内部查询选择大约2000行。有一些统计上的可变性。外部查询然后随机地对它们进行排序,并从中选择1000个。你知道吗</p>
<p>如果不知道行数,可以执行以下操作:</p>
<pre><code>select t.ext_id
from table_name t cross join
(select count(*) as cnt from t) tt
where rand() < 2000 / tt.cnt
order by rand()
limit 1000;
</code></pre>