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

if 조건으로 MySQL을 업데이트할 수 있습니까?

<시간/>

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)