আরিথমেটিক লজিক দিয়ে টেম্পোরারি ভেরিয়েবল ছাড়াই সোয়াপ
দুই কলামের মান পারস্পরিক বদলাতে (swap) এক্সট্রা ভেরিয়েবল ছাড়া গাণিতিক পদ্ধতি ব্যবহার করা যায়:
a = a + bb = a - b(এখন b = পুরনো a)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 বা টেম্পোরারি কলাম ব্যবহার করুন।