Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में RAND() और LIMIT 1 से रैंडम पंक्ति कैसे चुनें?

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;
  1. - MySQL टेबल से पंक्तियाँ चुनें और IN() का उपयोग करके प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable778 ( ClientId varchar(100), ClientName varchar(100) ); Query OK, 0 rows affected (1.05 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable778 values(J-101,John); Query OK, 1 row affected (0.20

  1. - MySQL में PREPARE स्टेटमेंट से यादृच्छिक पंक्तियां प्राप्त करें

    RAND() और PREPARE के साथ डायनामिक यादृच्छिक पंक्ति चयन MySQL में ORDER BY RAND() LIMIT 1 सरल तरीका है, लेकिन बड़े टेबल पर धीमा होता है। PREPARE स्टेटमेंट के साथ डायनामिक क्वेरी बनाकर यादृच्छिक पंक्ति प्राप्त करना एक विकल्प है। टेबल और डेटा CREATE TABLE DemoTable( FirstName VARCHAR(100), Co

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT