रैंडम के लिए RAND() मेथड और रिकॉर्ड्स सीमित करने के लिए LIMIT मेथड का उपयोग करें।
टेबल बनाएं
mysql> create table DemoTable (
-> Value int
-> );
Query OK, 0 rows affected (0.54 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(300); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(600); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(700); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(1000); Query OK, 1 row affected (0.15 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+-------+ | Value | +-------+ | 100 | | 300 | | 600 | | 700 | | 1000 | +-------+ 5 rows in set (0.00 sec)
रैंडम रिकॉर्ड्स के साथ विशिष्ट संख्या में पंक्तियां प्राप्त करने का क्वेरी
mysql> select * from DemoTable order by rand() limit 4;
आउटपुट (हर बार अलग हो सकता है):
+-------+ | Value | +-------+ | 1000 | | 600 | | 100 | | 700 | +-------+ 4 rows in set (0.00 sec)
प्रदर्शन नोट:
ORDER BY RAND()बड़ी टेबल्स पर धीमा होता है (पूरी टेबल स्कैन और सॉर्ट)- बड़ी टेबल्स के लिए:
WHERE RAND() < (SELECT (4/COUNT(*)) FROM DemoTable)या ऑफसेट-आधारित दृष्टिकोण बेहतर हैं - छोटी टेबल्स (हजारों पंक्तियों तक) के लिए
ORDER BY RAND() LIMIT nठीक है