두 개의 열을 교환하기 위해 아래의 교환 로직을 적용할 수 있습니다.
-
두 값을 모두 추가하고 첫 번째 열에 저장
-
두 번째 열에서 첫 번째 열의 값을 빼서 두 번째 열에 저장합니다.
-
업데이트된 두 번째 열에서 첫 번째 열의 값을 빼서 첫 번째 열에 저장합니다.
위의 규칙 구조는 다음과 같습니다. 첫 번째 열이 a이고 두 번째 열이 b라고 가정합니다.
1. a = a+b; 2. b = a-b; 3. a = a-b;
이제 두 열 값을 바꾸기 위해 위의 규칙을 적용합니다.
테이블 만들기.
mysql> create table SwappingTwoColumnsValueDemo -> ( -> FirstColumnValue int, -> SecondColumnValue int -> ); Query OK, 0 rows affected (0.49 sec)
일부 레코드를 삽입합니다.
mysql> insert into SwappingTwoColumnsValueDemo values(10,20),(30,40),(50,60),(70,80),(90,100); Query OK, 5 rows affected (0.19 sec) Records: 5 Duplicates: 0 Warnings: 0
교체하기 전에 열 값을 확인합니다.
mysql> select *from SwappingTwoColumnsValueDemo;
다음은 출력입니다.
+------------------+-------------------+ | FirstColumnValue | SecondColumnValue | +------------------+-------------------+ | 10 | 20 | | 30 | 40 | | 50 | 60 | | 70 | 80 | | 90 | 100 | +------------------+-------------------+ 5 rows in set (0.00 sec)
열 값을 바꾸는 구문입니다.
mysql> UPDATE SwappingTwoColumnsValueDemo -> SET FirstColumnValue = FirstColumnValue+SecondColumnValue, -> SecondColumnValue = FirstColumnValue-SecondColumnValue, -> FirstColumnValue = FirstColumnValue-SecondColumnValue; Query OK, 5 rows affected (0.15 sec) Rows matched: 5 Changed: 5 Warnings: 0
열 값이 바뀌었는지 확인하기 위해.
mysql> select *from SwappingTwoColumnsValueDemo;
다음은 출력입니다.
+------------------+-------------------+ | FirstColumnValue | SecondColumnValue | +------------------+-------------------+ | 20 | 10 | | 40 | 30 | | 60 | 50 | | 80 | 70 | | 100 | 90 | +------------------+-------------------+ 5 rows in set (0.00 sec)