इस मामले में, 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