MySQL의 EXPORT_SET() 함수는 정수 타입의 열을 첫 번째 인수로 전달함으로써 테이블의 열과 함께 활용할 수 있습니다. 이 함수는 정수 값을 비트(bit) 단위로 분해한 뒤, 각 비트가 1이면 'on'에 해당하는 문자열을, 0이면 'off'에 해당하는 문자열을 반환하고, 이들을 지정된 구분자로 연결하여 하나의 문자열로 출력합니다.
기본 문법
EXPORT_SET(bits, on, off [, separator [, number_of_bits]])
마지막 인수인 number_of_bits는 검사할 비트의 개수를 의미하며, 생략할 경우 기본값인 64비트가 적용됩니다.
예제
다음 예제는 'Student' 테이블의 'Id' 열을 EXPORT_SET() 함수의 첫 번째 인수로 사용하여, 각 학생 ID를 비트 형태의 문자열로 변환하는 과정을 보여줍니다.
mysql> SELECT Id, EXPORT_SET(id,'1','0',' ',5) AS 'ID in bits' FROM student; +------+------------+ | Id | ID in bits | +------+------------+ | 1 | 1 0 0 0 0 | | 2 | 0 1 0 0 0 | | 15 | 1 1 1 1 0 | | 20 | 0 0 1 0 1 | | 21 | 1 0 1 0 1 | +------+------------+ 5 rows in set (0.00 sec)
결과 해석
위 쿼리에서는 'Student' 테이블의 'Id' 열이 EXPORT_SET() 함수의 인수로 사용되었습니다. 함수 호출 시 '1'은 비트가 설정된(on) 경우 표시할 문자열, '0'은 설정되지 않은(off) 경우 표시할 문자열, 공백(' ')은 구분자, 그리고 5는 검사할 비트 수를 나타냅니다.
예를 들어 ID가 15인 경우 이진수로 1111이므로 '1 1 1 1 0'으로 출력되고, ID가 20인 경우 이진수로 10100이므로 하위 5비트 기준 '0 0 1 0 1'로 출력됩니다. 이처럼 EXPORT_SET() 함수를 활용하면 정수형 데이터를 손쉽게 비트 패턴 문자열로 변환하여 조회할 수 있습니다.