一个出色的职位,可以处理多种情况,从简单到有缺口,再到有缺口的不均匀。
http://jan.kneschke.de/projects/mysql/order-by- rand/
对于大多数一般情况,这是您的操作方法:
SELECT name
FROM random AS r1 JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(id)
FROM random)) AS id)
AS r2
WHERE r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 1