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

हम MySQL टेबल से हर बार बेतरतीब ढंग से अलग-अलग पंक्तियों या मानों का सेट कैसे प्राप्त कर सकते हैं?


जब हम किसी क्वेरी में ORDER BY और LIMIT क्लॉज के साथ RAND () फ़ंक्शन का उपयोग करते हैं, तो MySQL हर बार पंक्तियों या मानों के अलग-अलग सेट लौटाता है। इसे समझने के लिए निम्नलिखित रिकॉर्ड वाली एक तालिका 'कर्मचारी' पर विचार किया जाता है -

mysql> Select * from Employee;
+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 1  | Gaurav | 50000  |
| 2  | Rahul  | 20000  |
| 3  | Advik  | 25000  |
| 4  | Aarav  | 65000  |
| 5  | Ram    | 20000  |
| 6  | Mohan  | 30000  |
| 7  | Aryan  | NULL   |
| 8  | Vinay  | NULL   |
+----+--------+--------+
8 rows in set (0.00 sec)

अब, नीचे दी गई क्वेरी RAND() फ़ंक्शन का उपयोग ORDER BY और LIMIT क्लॉज के साथ क्वेरी रिटर्न में यादृच्छिक रूप से अलग-अलग मानों या पंक्तियों के सेट में करेगी -

mysql> Select * from employee ORDER BY RAND() LIMIT 4;
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 5  | Ram   | 20000  |
| 4  | Aarav | 65000  |
| 6  | Mohan | 30000  |
| 8  | Vinay | NULL   |
+----+-------+--------+
4 rows in set (0.00 sec)

mysql> Select * from employee ORDER BY RAND() LIMIT 4;
+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 6  | Mohan  | 30000  |
| 8  | Vinay  | NULL   |
| 2  | Rahul  | 20000  |
| 1  | Gaurav | 50000  |
+----+--------+--------+
4 rows in set (0.03 sec)

mysql> Select * from employee ORDER BY RAND() LIMIT 4;
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 3  | Advik | 25000  |
| 8  | Vinay | NULL   |
| 7  | Aryan | NULL   |
| 5  | Ram   | 20000  |
+----+-------+--------+
4 rows in set (0.00 sec)

उपरोक्त परिणाम सेट से यह देखा जा सकता है कि हर बार जब हम क्वेरी चलाते हैं, तो यह मानों या पंक्तियों का एक यादृच्छिक रूप से भिन्न सेट देता है।


  1. MySQL तालिका से 3 यादृच्छिक मान कैसे प्रदर्शित करें?

    रैंडम के लिए रैंड () का उपयोग करें, जबकि मानों की संख्या के लिए LIMIT 3 यानी यहां 3 - रैंड() लिमिट 3 के आधार पर अपनेटेबलनाम ऑर्डर से अपना कॉलमनाम चुनें; आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable646 (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,FirstName varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभ

  1. मैं MySQL में अल्पविराम से अलग किए गए मानों की तालिका में कैसे खोज सकता हूं?

    अल्पविराम से अलग किए गए मानों की तालिका में खोजने के लिए, LIKE ऑपरेटर का उपयोग करें। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable675(मान टेक्स्ट);क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.55 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable675 में डालें मान (11,22,344,67,89

  1. मैं अपने ऑटो-इन्क्रीमेंट वैल्यू को MySQL में 1 से शुरू करने के लिए कैसे सेट कर सकता हूं?

    आप MySQL में 1 से शुरू करने के लिए auto_increment मान सेट करने के लिए तालिका को छोटा कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.44 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -