MySQL에서 부울 값 업데이트하기
MySQL에서 부울(Boolean) 값은 내부적으로 TINYINT(1)로 저장되며, true는 1, false는 0으로 처리됩니다. 부울 값을 업데이트하려면 UPDATE 문의 SET 절을 사용하면 됩니다. 특히 NOT 연산자(!)를 활용하면 현재 값을 손쉽게 반전(토글)할 수 있습니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, isMarried boolean
);
Query OK, 0 rows affected (0.58 sec)
샘플 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable(isMarried) values(false);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(isMarried) values(true);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(isMarried) values(true);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(isMarried) values(false);
Query OK, 1 row affected (0.13 sec)
저장된 데이터 확인하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
위 쿼리는 다음과 같은 결과를 출력합니다.
+----+-----------+
| Id | isMarried |
+----+-----------+
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| 4 | 0 |
+----+-----------+
4 rows in set (0.00 sec)
부울 값 업데이트 쿼리 실행하기
다음은 부울 값을 업데이트하는 쿼리입니다. NOT 연산자(!)를 사용하면 기존 값을 그대로 반전시킬 수 있어 매우 편리합니다.
mysql> update DemoTable set isMarried = !isMarried where Id=4;
Query OK, 1 row affected (0.17 sec)
Rows matched: 1 Changed: 1 Warnings: 0
업데이트 결과 확인하기
테이블의 레코드를 다시 한 번 조회해 보겠습니다.
mysql> select *from DemoTable;
아래 출력 결과에서 Id가 4인 행의 부울 값이 업데이트된 것을 확인할 수 있습니다.
+----+-----------+
| Id | isMarried |
+----+-----------+
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
+----+-----------+
4 rows in set (0.00 sec)
위 샘플 출력에서 볼 수 있듯이, Id가 4인 행의 isMarried 값이 0에서 1로 성공적으로 변경되었습니다. 이처럼 SET 컬럼명 = !컬럼명 구문을 사용하면 WHERE 조건에 해당하는 행의 부울 값을 간단하게 토글할 수 있습니다.