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

MySQL-এ CASE স্টেটমেন্ট দিয়ে 'a' ও 'b' মান 서로 বিনিময় (swap) করা


UPDATE ... CASE WHEN দিয়ে দুই মান পরস্পর বিনিময়

MySQL-এ একটি কলামে শুধু 'a' এবং 'b' মান থাকলে, CASE WHEN এক্সপ্রেশন ব্যবহার করে একসাথে দুটি মান বিনিময় করা যায়।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (Value CHAR(1));
mysql> INSERT INTO DemoTable VALUES('a'), ('b'), ('a'), ('a'), ('b'), ('a'), ('b');

আপডেটের আগে

+-------+
| Value |
+-------+
| a     |
| b     |
| a     |
| a     |
| b     |
| a     |
| b     |
+-------+

CASE WHEN দিয়ে SWAP

mysql> UPDATE DemoTable 
SET Value = CASE WHEN Value = 'a' THEN 'b' ELSE 'a' END;
Query OK, 7 rows affected (0.17 sec)

আপডেটের পর

+-------+
| Value |
+-------+
| b     |
| a     |
| b     |
| b     |
| a     |
| b     |
| a     |
+-------+

ব্যাখ্যা

  • CASE WHEN Value='a' THEN 'b' ELSE 'a' END — 'a' হলে 'b', অন্যথায় (এখানে শুধু 'b' থাকে) 'a' সেট করে।
  • একই UPDATE-এ দুটি মান বিনিময় হয়ে যায়, কোনো টেম্পোরারি কলাম বা একাধিক কোয়েরি লাগে না।

বিকল্প পদ্ধতি (MySQL 8.0+)

UPDATE DemoTable SET Value = IF(Value='a','b','a');

IF() ফাংশন দিয়ে আরও সংক্ষিপ্ত লিখা যায়।

  1. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

  2. MySQL-এ নির্দিষ্ট মান 'None' কে 'N/A' দিয়ে আপডেট করা

  3. MySQL-এ স্ট্রিং কলাম থেকে নির্দিষ্ট প্যাটার্নের রেকর্ড বের করা (স্ট্রিং, সংখ্যা, স্পেশাল ক্যারেক্টার)

  4. MySQL-এ REGEXP ব্যবহার করে রেগুলার এক্সপ্রেশন দিয়ে আপডেট করা