Implemented randomly, the following statement was found from the manual to complete the task:
SELECT * FROM table_name ORDER BY RAND () LIMIT 5;
That's what Rand said in the handbook:
RAND ()
RAND (N)
Returns a random floating-point value in the range 0 through 1.0. If an integer parameter n is specified, it is used as a seed value.
Mysql> select RAND ();
-> 0.5925
Mysql> Select RAND (20);
-> 0.1811
Mysql> Select RAND (20);
-> 0.1811
Mysql> select RAND ();
-> 0.2079
Mysql> select RAND ();
-> 0.7888
You cannot use a column with the rand () value in an ORDER BY clause, because an order by will repeatedly compute the column multiple times. In MySQL3.23, however, you can do this: SELECT * FROM table_name ORDER BY RAND (), which is advantageous to getting a from SELECT * from Table1,table2 WHERE a=b and C<d O A random sample of the collection of Rder by RAND () LIMIT 1000.
Note that a rand () in a WHERE clause will be reassessed each time the where is executed.
But try it, 8,000 records of the table, the execution once needed 0.08 sec, a little slower. After consulting Google, get the following code:
Execution efficiency requires 0.02 sec. Unfortunately, only MySQL 4.1.* above supports such subqueries.