MySQL RAND(): रैंडम पंक्ति प्राप्त करना
ORDER BY RAND() के साथ LIMIT 1 का उपयोग करके टेबल से एक रैंडम पंक्ति प्राप्त कर सकते हैं।
उदाहरण: रैंडम कोट प्राप्त करें
टेबल बनाएं:
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50),
Quote TEXT
);
INSERT INTO DemoTable (Name, Quote) VALUES
('Chris', 'MySQL is a relational database'),
('Robert', 'Java is an Object Oriented Programming Language'),
('Mike', 'C is a Procedural Language'),
('David', 'Hibernate and spring is a framework');
रैंडम पंक्ति चुनें
SELECT Id, Name, Quote FROM DemoTable ORDER BY RAND() LIMIT 1;
संभावित परिणाम:
+----+------+----------------------------+ | Id | Name | Quote | +----+------+----------------------------+ | 3 | Mike | C is a Procedural Language | +----+------+----------------------------+
यह कैसे काम करता है?
RAND()— प्रत्येक पंक्ति के लिए 0 से 1 के बीच रैंडम संख्या जनरेट करता हैORDER BY RAND()— पंक्तियों को रैंडम क्रम में व्यवस्थित करता हैLIMIT 1— पहली पंक्ति (रैंडम) लौटाता है
प्रदर्शन चेतावनी: बड़ी टेबल पर धीमा
ORDER BY RAND() सभी पंक्तियों के लिए रैंडम मान जनरेट करता है, उन्हें सॉर्ट करता है, फिर LIMIT लागू करता है। लाखों पंक्तियों पर यह बहुत धीमा होता है।
बड़े टेबल के लिए बेहतर तरीके
SELECT * FROM DemoTable ORDER BY RAND() LIMIT 5;