Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 bit(1) 필드 값을 표시하는 방법

MySQL에서 bit(1) 타입 컬럼은 일반적인 SELECT 문으로 조회할 경우 값이 제대로 보이지 않는 문제가 있습니다. 이 글에서는 bit(1) 필드의 실제 값을 화면에 정상적으로 표시하는 방법을 예제와 함께 알아보겠습니다.

테이블 생성하기

먼저 bit(1) 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable
(
    isCaptured bit(1)
);
Query OK, 0 rows affected (1.00 sec)

데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable values(1);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.47 sec)
mysql> insert into DemoTable values(1);
Query OK, 1 row affected (0.29 sec)

일반 SELECT 문으로 조회할 때의 문제점

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+------------+
| isCaptured |
+------------+
|            |
|            |
|            |
|            |
+------------+
4 rows in set (0.00 sec)

출력 결과에서 알 수 있듯이, bit(1) 필드는 기본적으로 출력 가능한 문자 형태로 변환되지 않기 때문에 값이 공백처럼 표시됩니다. 데이터가 실제로 저장되어 있음에도 불구하고 눈으로 확인할 수 없는 것입니다.

bit(1) 필드 값을 표시하는 해결 방법

bit(1) 필드의 실제 값을 확인하려면 해당 필드에 0을 더해(+0) 숫자형으로 변환하면 됩니다.

mysql> select isCaptured+0 AS Visible from DemoTable;

실행 결과는 다음과 같습니다.

+---------+
| Visible |
+---------+
| 0       |
| 1       |
| 0       |
| 1       |
+---------+
4 rows in set (0.05 sec)

이제 bit(1) 필드의 값이 0과 1로 정상적으로 표시됩니다. 이처럼 비트 타입 컬럼에 산술 연산(+0)을 적용하면 값이 숫자형으로 자동 변환되어 결과를 손쉽게 확인할 수 있습니다. CAST 함수를 사용하는 방법도 있지만, 간단한 조회에는 +0 연산이 가장 편리하게 활용됩니다.