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

MySQL में DISTINCT पंक्तियों को रैंडमली चुनें

ORDER BY RAND() के साथ LIMIT और DISTINCT का उपयोग करके टेबल से यादृच्छिक विशिष्ट पंक्तियाँ प्राप्त करें।

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(40)
);
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('John Doe'),('Chris Brown'),('Adam Smith'),
('John Doe'),('John Doe'),('Chris Brown'),('Adam Smith');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----+-------------+
| Id | Name        |
+----+-------------+
| 1  | John Doe    |
| 2  | Chris Brown |
| 3  | Adam Smith  |
| 4  | John Doe    |
| 5  | John Doe    |
| 6  | Chris Brown |
| 7  | Adam Smith  |
+----+-------------+

3 यादृच्छिक विशिष्ट नामों के लिए क्वेरी

mysql> SELECT DISTINCT Name
FROM DemoTable
ORDER BY RAND()
LIMIT 3;

परिणाम (उदाहरण - हर बार अलग):

+-------------+
| Name        |
+-------------+
| Chris Brown |
| John Doe    |
| Adam Smith  |
+-------------+
3 rows in set (0.00 sec)

चेतावनी: बड़े टेबल पर ORDER BY RAND() धीमा होता है (पूर्ण टेबल स्कैन + सॉर्ट)। विकल्प: WHERE RAND() < (SELECT (3/COUNT(*)) FROM DemoTable) या प्राथमिक कुंजी रेंज पर एप्लिकेशन-स्तर नमूनाकरण।

  1. - MySQL में SELECT DISTINCT बनाम GROUP BY

    SELECT DISTINCT डुप्लीकेट हटाकर यूनिक वैल्यू देता है। सिंगल कॉलम पर एग्रीगेट के साथ भी उपयोगी। SELECT DISTINCT name FROM DistinctDemo ORDER BY name; -- John, Bob, David GROUP BY एक या अधिक कॉलम द्वारा ग्रुपिंग, एग्रीगेट फंक्शन (SUM, AVG, COUNT) के साथ। SELECT address, COUNT(*) FROM GroupDemo1 GROUP

  1. - MySQL SELECT क्वेरी: किसी टेबल से उन रो को चुनें जो दूसरी टेबल में नहीं हैं

    हमारे उदाहरण के लिए, हम दो टेबल बनाएंगे और नेचुरल लेफ्ट जॉइन लागू करके उन रो को प्राप्त करेंगे जो पहली टेबल में हैं लेकिन दूसरी में नहीं। पहली टेबल बनाना। mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) पहली ट

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर