MySQL에서 AND 연산자로 UPDATE 수행하기
MySQL에서는 UPDATE 문과 함께 AND 연산자를 활용하여 조건에 따라 컬럼 값을 동적으로 설정할 수 있습니다. 이번 글에서는 예제를 통해 AND 연산자를 사용한 업데이트 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 데모용 테이블을 생성합니다.
mysql> create table DemoTable613 (Id int,Age int,isMarried tinyint(1));
Query OK, 0 rows affected (0.54 sec)
2. 레코드 삽입
insert 명령을 사용하여 테이블에 샘플 데이터를 입력합니다.
mysql> insert into DemoTable613 values(100,29,0);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable613 values(200,22,0);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable613 values(300,30,1);
Query OK, 1 row affected (0.19 sec)
3. 데이터 조회
select 문으로 테이블의 전체 레코드를 확인합니다.
mysql> select *from DemoTable613;
실행 결과는 다음과 같습니다.
+------+------+-----------+
| Id | Age | isMarried |
+------+------+-----------+
| 100 | 29 | 0 |
| 200 | 22 | 0 |
| 300 | 30 | 1 |
+------+------+-----------+
3 rows in set (0.00 sec)
4. AND 연산자를 사용한 UPDATE 쿼리
다음은 AND 연산자를 활용해 isMarried 값을 갱신하는 UPDATE 쿼리입니다.
mysql> update DemoTable613 set isMarried=(Age=29 AND (Id=100));
Query OK, 2 rows affected (0.24 sec)
Rows matched: 3 Changed: 2 Warnings: 0
여기서 핵심은 (Age=29 AND Id=100)이라는 불리언 표현식입니다. MySQL에서 비교 조건이 참이면 1, 거짓이면 0을 반환하기 때문에, Age가 29이고 Id가 100인 행만 isMarried 값이 1로 설정되고 나머지 행은 0으로 갱신됩니다.
5. 업데이트 결과 확인
업데이트 후 테이블을 다시 한번 조회해 보겠습니다.
mysql> select *from DemoTable613;
실행 결과는 다음과 같습니다.
+------+------+-----------+
| Id | Age | isMarried |
+------+------+-----------+
| 100 | 29 | 1 |
| 200 | 22 | 0 |
| 300 | 30 | 0 |
+------+------+-----------+
3 rows in set (0.00 sec)
위 결과를 보면 Id가 100이고 Age가 29인 행의 isMarried 값이 1로 변경된 것을 확인할 수 있습니다. 이처럼 AND 연산자를 UPDATE 문에 활용하면 별도의 WHERE 절 없이도 조건 기반 업데이트를 간결하게 처리할 수 있어, 특정 조건을 만족하는 행만 선택적으로 값을 변경할 때 유용하게 사용됩니다.