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

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

<घंटा/>

इस मामले में, MySQL एक त्रुटि संदेश लौटाएगा क्योंकि हम जानते हैं कि यदि उप-क्वेरी का उपयोग UPDATE स्टेटमेंट के SET क्लॉज में नए मान निर्दिष्ट करने के लिए किया जाता है, तो उसे WHERE क्लॉज से मेल खाने वाली अपडेट टेबल में प्रत्येक पंक्ति के लिए बिल्कुल एक पंक्ति वापस करनी होगी। ।

उदाहरण

mysql> insert into info(id, remarks) values(5,'average');
Query OK, 1 row affected (0.06 sec)

mysql> select * from info;
+------+-----------+
| id   | remarks   |
+------+-----------+
| 1    | Good      |
| 2    | Good      |
| 3    | Excellent |
| 4    | Average   |
| 5    | Best      |
| 5    | average   |
+------+-----------+
6 rows in set (0.00 sec)

जैसा कि हम ऊपर देख सकते हैं 'जानकारी' तालिका में आईडी =5 के साथ दो पंक्तियाँ हैं, इसलिए जब हम इसे उप-क्वेरी में उपयोग करेंगे तो यह कई पंक्तियों को वापस कर देगा और इसके कारण MySQL एक त्रुटि संदेश इस प्रकार लौटाएगा -

mysql> UPDATE STUDENT SET grade = (SELECT remarks from info WHERE info.id = student.id) WHERE id = 5;
ERROR 1242 (21000): Subquery returns more than 1 row

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

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

  1. MySQL में सिंगल WHERE क्लॉज का उपयोग करके कई पंक्तियों को कैसे अपडेट करें?

    इसके लिए आप MySQL IN() का इस्तेमाल कर सकते हैं। आइए पहले एक − . बनाएं );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.12 सेकंड) इंसर्ट का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1420(FirstName) में डालें ,अंतिम नाम,आयु)मान(एडम,स्मिथ,25);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) − . का चयन

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

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