For example, suppose you have a table with 200K rows and you need only 100 random rows from the table. The fragment of the result set from the total rows is: 100 / 200k = 0.0005.
The query will look like:
SELECT col1 FROM tbl WHERE RAND()<=0.0005;In order to get exactly 100 row in the result set, we can increase the fragment number a bit and limit the query:
For example:
SELECT col1 FROM tbl WHERE RAND()<=0.0006 limit 100;