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

MySQL में एकाधिक घटनाओं वाले नाम के लिए रैंडम पंक्ति (Id और Name) कैसे चुनें?

MySQL: डुप्लिकेट नाम वाले रिकॉर्ड से रैंडम पंक्ति चुनना

जब किसी नाम की कई पंक्तियां हों और उनमें से एक रैंडम पंक्ति चाहिए, तो WHERE Name = 'value' के साथ ORDER BY RAND() LIMIT 1 का उपयोग करें।

उदाहरण: 'Bob' नाम की रैंडम पंक्ति

टेबल बनाएं:

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);

INSERT INTO DemoTable (Name) VALUES ('Chris'), ('Bob'), ('David'), ('Bob'), ('Bob');

डेटा (Bob की 3 पंक्तियां):

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Chris |
| 2  | Bob   |
| 3  | David |
| 4  | Bob   |
| 5  | Bob   |
+----+-------+

रैंडम Bob पंक्ति प्राप्त करें

SELECT * FROM DemoTable WHERE Name = 'Bob' ORDER BY RAND() LIMIT 1;

संभावित परिणाम:

+----+------+
| Id | Name |
+----+------+
| 5  | Bob  |
+----+------+

व्याख्या

  • WHERE Name = 'Bob' — केवल Bob वाली पंक्तियां (Id 2, 4, 5)
  • ORDER BY RAND() — इन 3 पंक्तियों को रैंडम क्रम में व्यवस्थित
  • LIMIT 1 — उनमें से एक चुनता है

प्रदर्शन के लिए बेहतर: रैंडम ऑफसेट

यदि डुप्लिकेट बहुत अधिक हैं:


उपयोग केस

  • A/B टेस्टिंग: एक वेरिएंट रैंडमली चुनें
  • फीचर्ड कंटेंट: समान श्रेणी से एक आइटम दिखाएं
  • लोड बैलेंसिंग: समान सर्वर में से एक चुनें
  1. - MySQL में AND और OR ऑपरेटर का उपयोग करके मल्टीपल रो रिकॉर्ड्स कैसे लौटाएं

    AND और OR ऑपरेटर्स को मिलाकर जटिल फ़िल्टरिंग एकाधिक शर्तों को AND और OR ऑपरेटर्स के साथ जोड़कर जटिल फ़िल्टरिंग करें। कोष्ठक () का उपयोग प्राथमिकता नियंत्रित करने के लिए करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Stu

  1. - MySQL क्वेरी: अधिकतम और न्यूनतम वेतन वाली पंक्ति चुनें

    MySQL में अधिकतम और न्यूनतम वेतन वाली पंक्तियों को एक साथ चुनने के लिए, सबक्वेरी के साथ MIN(), MAX() और UNION ALL का उपयोग करें। टेबल बनाएं: mysql> create table DemoTable ( -> EmployeeName VARCHAR(20), -> EmployeeSalary INT -> ); Query OK, 0 rows affected (0.70 sec) रि

  1. - MySQL में GROUP BY HAVING और IN से एकाधिक मान शर्त पूरी करने वाली पंक्तियाँ चुनें

    किसी कॉलम (जैसे Subject) में एकाधिक विशिष्ट मान (MySQL, MongoDB) **दोनों** रखने वाले समूह (FirstName) खोजने के लिए IN फ़िल्टर + GROUP BY + HAVING COUNT(*) = N का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1885 (FirstName VARCHAR(20), Subject VARCHAR(50)); डेटा डालें mysql> INSERT IN