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

두 개의 열 값을 교환하여 MySQL 테이블을 업데이트하는 방법은 무엇입니까?

<시간/>

열의 두 값을 바꾸려면 CASE WHEN 문을 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1382
   -> (
   -> StudentName varchar(20)
   -> );
Query OK, 0 rows affected (0.57 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1382 values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1382 values('Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1382 values('Adam');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1382 values('Bob');
Query OK, 1 row affected (0.17 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable1382;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+
| StudentName |
+-------------+
| John        |
| Chris       |
| Adam        |
| Bob         |
+-------------+
4 rows in set (0.00 sec)

다음은 두 개의 열 값을 교환하여 MySQL 테이블을 업데이트하는 쿼리입니다 -

mysql> update DemoTable1382
   ->  set StudentName=( case when StudentName="Chris" then "John"
   -> when StudentName="John" then "Chris"
   -> else
   -> StudentName
   -> end
   -> );
Query OK, 2 rows affected (0.19 sec)
Rows matched: 4  Changed: 2 Warnings: 0

다시 한번 테이블 기록을 확인해보자 -

mysql> select * from DemoTable1382;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+
| StudentName |
+-------------+
| Chris       |
| John        |
| Adam        |
| Bob         |
+-------------+
4 rows in set (0.00 sec)