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

MySQL-এ দুই কলামের মান সোয়াপ (swap) করার পদ্ধতি

আরিথমেটিক লজিক দিয়ে টেম্পোরারি ভেরিয়েবল ছাড়াই সোয়াপ

দুই কলামের মান পারস্পরিক বদলাতে (swap) এক্সট্রা ভেরিয়েবল ছাড়া গাণিতিক পদ্ধতি ব্যবহার করা যায়:

  1. a = a + b
  2. b = a - b (এখন b = পুরনো a)
  3. a = a - b (এখন a = পুরনো b)

নমুনা টেবিল ও ডেটা

mysql> CREATE TABLE SwappingTwoColumnsValueDemo (FirstColumnValue INT, SecondColumnValue INT);
mysql> INSERT INTO SwappingTwoColumnsValueDemo VALUES (10,20),(30,40),(50,60),(70,80),(90,100);
mysql> SELECT * FROM SwappingTwoColumnsValueDemo;
+------------------+-------------------+
| FirstColumnValue | SecondColumnValue |
+------------------+-------------------+
| 10               | 20                |
| 30               | 40                |
| 50               | 60                |
| 70               | 80                |
| 90               | 100               |
+------------------+-------------------+

সোয়াপ কোয়েরি (সিংগেল স্টেটমেন্ট)

mysql> UPDATE SwappingTwoColumnsValueDemo
    -> SET FirstColumnValue = FirstColumnValue + SecondColumnValue,
    ->     SecondColumnValue = FirstColumnValue - SecondColumnValue,
    ->     FirstColumnValue = FirstColumnValue - SecondColumnValue;
Query OK, 5 rows affected (0.15 sec)

ফলাফল

+------------------+-------------------+
| FirstColumnValue | SecondColumnValue |
+------------------+-------------------+
| 20               | 10                |
| 40               | 30                |
| 60               | 50                |
| 80               | 70                |
| 100              | 90                +
+------------------+-------------------+

সতর্কতা: বড় সংখ্যার ক্ষেত্রে ওভারফ্লো হতে পারে। সেজন্য BIGINT বা টেম্পোরারি কলাম ব্যবহার করুন।

  1. MySQL-এ IS NOT NULL দিয়ে কলামে NULL বা NOT NULL চেক করা

  2. MySQL-এ কলাম মানয়ের সাথে স্পেশাল ক্যারেক্টার যুক্ত করা

  3. MySQL-এ কলাম মান শাফল করা

  4. MySQL-এ ব্ল্যাংক (খালি) মান গুলো NULL-এ আপডেট করা