कई मामलों को संभालने वाली एक बेहतरीन पोस्ट, साधारण से लेकर अंतराल तक, अंतराल के साथ गैर-वर्दी तक।
http://jan.kneschke.de/projects/mysql/order- बाय-रैंड/
अधिकांश सामान्य मामलों के लिए, आप यह कैसे करते हैं:
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
यह मानता है कि आईडी का वितरण समान है, और आईडी सूची में अंतराल हो सकते हैं। अधिक उन्नत उदाहरणों के लिए लेख देखें