रैंडम रो चुनने के लिए MySQL में RAND() के साथ LIMIT का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName ORDER BY RAND() LIMIT 1;
उदाहरण के साथ समझें
सबसे पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE generateRandomRow (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(20),
-> Age INT,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (1.66 sec)
रिकॉर्ड डालें
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('John', 23);
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('Larry', 21);
Query OK, 1 row affected (0.32 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('David', 21);
Query OK, 1 row affected (0.39 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('Carol', 24);
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('Bob', 27);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('Mike', 29);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO generateRandomRow(Name, Age) VALUES('Sam', 26);
Query OK, 1 row affected (0.17 sec)
सभी रिकॉर्ड देखें
mysql> SELECT * FROM generateRandomRow;
आउटपुट
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 23 | | 2 | Larry | 21 | | 3 | David | 21 | | 4 | Carol | 24 | | 5 | Bob | 27 | | 6 | Mike | 29 | | 7 | Sam | 26 | +----+-------+------+ 7 rows in set (0.00 sec)
रैंडम रो चुनें
mysql> SELECT * FROM generateRandomRow ORDER BY RAND() LIMIT 1;
आउटपुट (पहली बार)
+----+------+------+ | Id | Name | Age | +----+------+------+ | 5 | Bob | 27 | +----+------+------+ 1 row in set (0.00 sec)
फिर से चलाएं (दूसरी बार)
mysql> SELECT * FROM generateRandomRow ORDER BY RAND() LIMIT 1;
आउटपुट (दूसरी बार)
+----+------+------+ | Id | Name | Age | +----+------+------+ | 6 | Mike | 29 | +----+------+------+ 1 row in set (0.00 sec)
हर बार क्वेरी चलाने पर अलग-अलग रैंडम रो प्राप्त होती है। RAND() प्रत्येक पंक्ति के लिए एक रैंडम फ्लोटिंग-पॉइंट मान उत्पन्न करता है, और ORDER BY RAND() उन्हें रैंडमली सॉर्ट करता है।