Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 두 개의 열 값을 바꾸시겠습니까?

<시간/>

두 개의 열을 교환하기 위해 아래의 교환 로직을 적용할 수 있습니다.

  • 두 값을 모두 추가하고 첫 번째 열에 저장

  • 두 번째 열에서 첫 번째 열의 값을 빼서 두 번째 열에 저장합니다.

  • 업데이트된 두 번째 열에서 첫 번째 열의 값을 빼서 첫 번째 열에 저장합니다.

위의 규칙 구조는 다음과 같습니다. 첫 번째 열이 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)