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

MySQL에서 문자열을 비트(Bit) 값으로 변환하는 방법 – CONV() 함수 활용

MySQL에서 문자열을 비트 집합으로 변환하기

MySQL에서 문자열을 비트(bit) 값으로 변환하려면 CONV() 함수를 사용하거나 b'1011' 형태의 비트 리터럴을 활용할 수 있습니다. 이 글에서는 실제 예제를 통해 문자열을 BIT 타입 컬럼에 저장하고, 저장된 값을 다시 10진수와 2진수로 확인하는 과정까지 단계별로 살펴보겠습니다.

1단계: 테이블 생성

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

mysql> create table DemoTable
(
    stringValue BIT(4)
);
Query OK, 0 rows affected (3.50 sec)

2단계: 레코드 삽입

insert 명령을 사용하여 두 가지 방식으로 데이터를 삽입합니다. 첫 번째는 CONV() 함수로 2진수 문자열 '1110'을 10진수로 변환한 값이고, 두 번째는 b'' 비트 리터럴 표기법을 사용한 방식입니다.

mysql> insert into DemoTable values(CONV('1110', 2, 10) * 1);
Query OK, 1 row affected (0.62 sec)
mysql> insert into DemoTable values(b'1011');
Query OK, 1 row affected (0.14 sec)

여기서 CONV('1110', 2, 10)는 2진수 문자열 '1110'을 10진수 14로 변환하며, 곱하기 1(* 1)을 통해 숫자 타입으로 강제 변환합니다.

3단계: 전체 레코드 조회

select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

컬럼의 데이터 타입이 BIT(비트 집합)이기 때문에 일반적인 select 문으로는 아래 이미지처럼 빈 값만 출력됩니다.

MySQL에서 문자열을 비트(Bit) 값으로 변환하는 방법 – CONV() 함수 활용

4단계: 비트 값을 10진수·2진수로 변환하여 조회

저장된 비트 값을 사람이 읽을 수 있는 형태로 확인하려면 +0 연산자로 숫자 변환을 유도하고, BIN() 함수로 2진수 표현을 함께 조회하면 됩니다.

mysql> select stringValue+0 AS DECIMAL_VALUE,BIN(stringValue) AS BINARY_VALUE from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+---------------+--------------+
| DECIMAL_VALUE | BINARY_VALUE |
+---------------+--------------+
| 14           | 1110         |
| 11           | 1011         |
+---------------+--------------+
2 rows in set (0.04 sec)

정리

결과를 보면 첫 번째 레코드는 2진수 '1110'에 해당하는 10진수 14, 두 번째 레코드는 2진수 '1011'에 해당하는 10진수 11로 정상적으로 저장된 것을 확인할 수 있습니다. 즉, MySQL에서 문자열을 비트 값으로 다룰 때는 CONV() 함수나 b'' 리터럴로 값을 넣고, 조회 시에는 +0 또는 BIN(), HEX() 같은 함수를 조합하면 원하는 형태로 손쉽게 변환하여 확인할 수 있습니다.