IF 조건과 CASE 문을 사용하여 MySQL을 업데이트할 수 있습니다. 이를 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리 -
mysql> create table UpdateWithIfCondition −> ( −> BookId int, −> BookName varchar(200) −> ); Query OK, 0 rows affected (0.60 sec)
이제 insert 명령을 사용하여 테이블에 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> insert into UpdateWithIfCondition values(1000,'C in Depth'); Query OK, 1 row affected (0.12 sec) mysql> insert into UpdateWithIfCondition values(1001,'Introduction to Java'); Query OK, 1 row affected (0.14 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from UpdateWithIfCondition;
다음은 출력입니다 -
+--------+----------------------+ | BookId | BookName | +--------+----------------------+ | 1000 | C in Depth | | 1001 | Introduction to Java | +--------+----------------------+ 2 rows in set (0.00 sec)
if 조건을 사용하여 'C in Depth' 값을 'Introduction to C' 값으로 업데이트하고 1001을 2000 값으로 업데이트하겠습니다. 쿼리는 다음과 같습니다 -
mysql> update UpdateWithIfCondition −> set BookName = if(BookName = 'C in Depth','Introduction to C',BookName), −> BookId = if(BookId = 1001,2000,BookId); Query OK, 2 rows affected (0.43 sec) Rows matched: 2 Changed: 2 Warnings: 0
위에서 두 열 값을 모두 업데이트했습니다. 다음은 두 값이 모두 업데이트되었는지 확인하는 쿼리입니다. -
mysql> select *from UpdateWithIfCondition;
다음은 if -
를 사용하여 값을 성공적으로 업데이트했음을 표시하는 출력입니다.+--------+----------------------+ | BookId | BookName | +--------+----------------------+ | 1000 | Introduction to C | | 2000 | Introduction to Java | +--------+----------------------+ 2 rows in set (0.00 sec)