第一种方法和第二种方法相比,效率低很多
SELECT * FROM `table` ORDER BY RAND() LIMIT 5 /*第一种方法*/
SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;/*第二种方法*/
转:
http://database.51cto.com/art/201005/202906.htm