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

यदि सब-क्वेरी, UPDATE स्टेटमेंट के SET क्लॉज में नए मान निर्दिष्ट करने के लिए उपयोग की जाती है, तो MySQL क्या लौटाता है, कोई पंक्तियाँ नहीं देता है?

<घंटा/>

इस मामले में, MySQL SET क्लॉज को NULL मान प्रदान करेगा। निम्नलिखित उदाहरण इसे प्रदर्शित करेगा -

उदाहरण

mysql> Select * from student;

+----+---------+-----------+
| Id | Name    | grade     |
+----+---------+-----------+
| 1  | Rahul   | Good      |
| 2  | Gaurav  | Good      |
| 3  | Raman   | Excellent |
| 4  | Harshit | Average   |
| 5  | Aarav   | Best      |
| 6  | Ram     | average   |
+----+---------+-----------+

6 rows in set (0.00 sec)

mysql> select * from info;

+------+-----------+
| id   | remarks   |
+------+-----------+
| 1    | Good      |
| 2    | Good      |
| 3    | Excellent |
| 4    | Average   |
| 5    | Best      |
+------+-----------+

5 rows in set (0.00 sec)

उपरोक्त दो तालिका से, हम देख सकते हैं कि 'छात्र' तालिका में 6 पंक्तियाँ हैं और 'ग्रेड' का मान 'औसत' है जहाँ id =6 और 'सूचना' तालिका में 5 पंक्तियाँ हैं। अब निम्नलिखित क्वेरी में प्रयुक्त उप-क्वेरी SET क्लॉज में नए मान देने के लिए कोई पंक्तियाँ प्रदान नहीं करेगी, इसलिए यह एक NULL मान सम्मिलित करेगी। निम्नलिखित प्रश्नों के आउटपुट से इसकी जांच की जा सकती है -

mysql> UPDATE STUDENT SET grade = (SELECT remarks from info WHERE info.id = student.id) WHERE id = 6;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> Select * from student;

+----+---------+-----------+
| Id | Name    | grade     |
+----+---------+-----------+
| 1  | Rahul   | Good      |
| 2  | Gaurav  | Good      |
| 3  | Raman   | Excellent |
| 4  | Harshit | Average   |
| 5  | Aarav   | Best      |
| 6  | Ram     | NULL      |
+----+---------+-----------+

6 rows in set (0.00 sec)

  1. MySQL में किसी श्रेणी के बीच मान प्राप्त करने के लिए खंड के बीच का विकल्प क्या है?

    BETWEEN क्लॉज का उपयोग करने से बचने के लिए, आप किसी श्रेणी के बीच मान लाने के लिए AND का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable(नंबर int);क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.62 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल वैल्यू में डालें

  1. शर्तों के आधार पर एक MySQL तालिका में सभी पंक्तियों के लिए केवल दो मान सेट करें?

    शर्त आधारित अद्यतन के लिए, अद्यतन और IF() का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं डेमोटेबल (वैल्यू इंट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.47 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (30); क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.10 सेकंड) च

  1. MySQL WHERE क्लॉज में कई मानों के साथ अपडेट करें

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.81 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें ( 103,कैरोल,28,एयूएस);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डेमोटेबल से