RAND() फ़ंक्शन से रैंडम पंक्ति चुनें
ORDER BY RAND() और LIMIT 1 का उपयोग करके टेबल से एक रैंडम पंक्ति प्राप्त करें।
सिंटैक्स
SELECT * FROM yourTableName ORDER BY RAND() LIMIT 1;
उदाहरण: टेबल और डेटा
mysql> create table selectRandomRecord (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO selectRandomRecord(StudentName) VALUES
('John'), ('Carol'), ('Bob'), ('Sam'), ('Mike'), ('Robert');
रैंडम चयन क्वेरी
mysql> SELECT * FROM selectRandomRecord ORDER BY RAND() LIMIT 1;
संभावित आउटपुट (हर बार अलग)
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 3 | Bob | +-----------+-------------+
दूसरी बार चलाने पर:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 5 | Mike | +-----------+-------------+
प्रदर्शन चेतावनी
ORDER BY RAND()बड़ी टेबल्स पर धीमा होता है (फुल टेबल स्कैन + सॉर्ट)- बड़ी टेबल्स के लिए बेहतर तरीके:
- ऑफसेट विधि:
LIMIT 1 OFFSET FLOOR(RAND() * (SELECT COUNT(*) FROM table)) - प्राथमिक कुंजी रेंज:
WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM table)))
- ऑफसेट विधि:
एकाधिक रैंडम पंक्तियाँ
SELECT * FROM table ORDER BY RAND() LIMIT 5;