কম্পিউটার টিউটোরিয়াল

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)

উপরোক্ত থেকে দেখা যাচ্ছে 'info' টেবিলে id = 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-এ BETWEEN ক্লজ না ব্যবহার করে AND অপারেটর দিয়ে রেঞ্জ কোয়ারি করা

  2. MySQL-এ IF() ফাংশন দিয়ে শর্তসাপেক্ষ আপডেট (দুটি মান ইন্টারচেঞ্জ)

  3. MySQL-এ একক WHERE ক্লজ দিয়ে একাধিক সারি আপডেট করা

  4. MySQL-এ WHERE ক্লজে একাধিক শর্ত দিয়ে আপডেট করা