MySQL में रैंडम पंक्तियाँ प्राप्त करने के लिए ORDER BY RAND() का उपयोग किया जाता है। यदि आपके कॉलम में कॉमा सेपरेटेड मान हैं, तो आप NOT IN के साथ फ़िल्टर करके रैंडम परिणाम ले सकते हैं।
टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE DemoTable1835 (
ListOfIds VARCHAR(20)
);
mysql> INSERT INTO DemoTable1835 VALUES('10,20,30');
mysql> INSERT INTO DemoTable1835 VALUES('70,80,90');
mysql> INSERT INTO DemoTable1835 VALUES('45,67,89');
mysql> INSERT INTO DemoTable1835 VALUES('98,96,49');
सभी रिकॉर्ड देखें
mysql> SELECT * FROM DemoTable1835;
+-----------+ | ListOfIds | +-----------+ | 10,20,30 | | 70,80,90 | | 45,67,89 | | 98,96,49 | +-----------+
रैंडम पंक्तियाँ प्राप्त करने की क्वेरी
मान लीजिए हम 10, 20, 70 को छोड़कर 2 रैंडम पंक्तियाँ चाहते हैं:
mysql> SELECT * FROM DemoTable1835
WHERE ListOfIds NOT IN('10,20,70')
ORDER BY RAND()
LIMIT 2;
आउटपुट (उदाहरण):
+-----------+ | ListOfIds | +-----------+ | 98,96,49 | | 45,67,89 | +-----------+
ध्यान देने योग्य बातें
NOT INमें मान कॉमा सेपरेटेड स्ट्रिंग के रूप में होने चाहिए, न कि अलग-अलग संख्याएँ।ORDER BY RAND()बड़ी टेबल पर धीमा हो सकता है; बड़े डेटासेट के लिए अन्य विधियाँ अपनाएँ।LIMITसे परिणामों की संख्या नियंत्रित करें।