ORDER BY RAND() के साथ LIMIT और DISTINCT का उपयोग करके टेबल से यादृच्छिक विशिष्ट पंक्तियाँ प्राप्त करें।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(40)
);
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('John Doe'),('Chris Brown'),('Adam Smith'),
('John Doe'),('John Doe'),('Chris Brown'),('Adam Smith');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+-------------+
| Id | Name |
+----+-------------+
| 1 | John Doe |
| 2 | Chris Brown |
| 3 | Adam Smith |
| 4 | John Doe |
| 5 | John Doe |
| 6 | Chris Brown |
| 7 | Adam Smith |
+----+-------------+
3 यादृच्छिक विशिष्ट नामों के लिए क्वेरी
mysql> SELECT DISTINCT Name
FROM DemoTable
ORDER BY RAND()
LIMIT 3;
परिणाम (उदाहरण - हर बार अलग):
+-------------+
| Name |
+-------------+
| Chris Brown |
| John Doe |
| Adam Smith |
+-------------+
3 rows in set (0.00 sec)
चेतावनी: बड़े टेबल पर ORDER BY RAND() धीमा होता है (पूर्ण टेबल स्कैन + सॉर्ट)। विकल्प: WHERE RAND() < (SELECT (3/COUNT(*)) FROM DemoTable) या प्राथमिक कुंजी रेंज पर एप्लिकेशन-स्तर नमूनाकरण।