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

MySQL에서 사용자 변수에 비트 값을 숫자로 할당하는 방법

MySQL에서 비트 값(bit value)을 사용자 변수에 할당하면 기본적으로 이진 문자열(binary string) 타입으로 저장됩니다. 예를 들어 0b1000011과 같은 비트 리터럴을 변수에 그대로 넣으면 문자열로 취급되기 때문에, 산술 연산이나 비교 작업을 수행할 때 의도와 다른 결과가 나올 수 있습니다.

다행히 MySQL은 비트 값을 숫자로 변환하여 할당할 수 있는 두 가지 간단한 방법을 제공합니다.

방법 1: CAST() 함수 사용

CAST(... AS UNSIGNED)를 활용하면 비트 값을 부호 없는 정수(unsigned number)로 변환할 수 있습니다. 다음 예제를 통해 확인해 보겠습니다.

mysql> SET @abc = CAST(0b1000011 AS UNSIGNED);
Query OK, 0 rows affected (0.00 sec)

mysql> Select @abc;
+------+
| @abc |
+------+
| 67   |
+------+
1 row in set (0.00 sec)

위 예제에서 이진수 0b1000011은 십진수 67(ASCII 문자 'C'에 해당)로 변환되어 변수에 할당된 것을 볼 수 있습니다.

방법 2: 0을 더하기 (+0)

비트 값에 0을 더하면(+0) MySQL이 자동으로 해당 값을 숫자 타입으로 변환합니다. 이 방법은 CAST() 함수보다 코드가 더 간결하다는 장점이 있습니다.

mysql> SET @abc = 0b1000011+0;
Query OK, 0 rows affected (0.00 sec)

mysql> Select @abc;
+------+
| @abc |
+------+
| 67   |
+------+
1 row in set (0.00 sec)

두 방법 모두 동일한 결과인 67을 반환합니다.

정리

  • CAST(비트값 AS UNSIGNED): 명시적이고 가독성이 좋아 의도를 분명히 드러내고 싶을 때 적합합니다.
  • 비트값 + 0: 간결하게 작성할 수 있어 간단한 상황에서 유용합니다.

비트 값을 숫자로 다뤄야 하는 경우 위 두 가지 방법 중 상황에 맞는 것을 선택해 사용하면 됩니다.