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

MySQL EXPORT_SET() 함수의 작동 원리와 사용법 완벽 가이드

EXPORT_SET() 함수는 MySQL에서 검색 및 데이터 변환에 활용되는 문자열 함수 중 하나입니다. 아래의 기본 문법을 통해 이 함수가 어떻게 동작하는지 쉽게 이해할 수 있습니다.

문법

EXPORT_SET(bits, on, off, separator, number of bits)

각 인수의 의미는 다음과 같습니다.

  • bits: 정수를 비트로 변환한 값으로, 각 비트가 1인지 0인지 판별하는 대상이 됩니다.
  • 'on': 함수의 두 번째 인수로, 따옴표 안에 임의의 값을 지정할 수 있으며 첫 번째 인수의 비트 값이 1일 때 반환됩니다.
  • 'off': 함수의 세 번째 인수로, 역시 따옴표 안에 임의의 값을 지정할 수 있으며 비트 값이 0일 때 반환됩니다.
  • separator: 결과를 출력할 때 반환되는 값들 사이에 삽입되는 구분자입니다. 따옴표로 묶인 어떤 문자나 값도 사용할 수 있습니다.
  • number of bits: 1 또는 0 여부를 검사할 비트의 개수를 지정합니다.

EXPORT_SET() 함수의 작동 방식

이 함수는 다음 순서대로 동작합니다.

  • 먼저 첫 번째 인수로 주어진 정숫값이 비트 형태(0과 1)로 변환됩니다. 그다음 각 비트가 1인지 0인지 하나씩 검사하며, 검사 순서는 오른쪽에서 왼쪽입니다.
  • 검사 결과 비트가 1이면 두 번째 인수인 'on' 값이, 0이면 세 번째 인수인 'off' 값이 반환됩니다.
  • 이 검사는 다섯 번째 인수로 지정된 비트 수만큼 반복됩니다.
  • 마지막으로 MySQL은 지금까지의 결과를 바탕으로 최종 출력을 반환하며, 반환된 값들 사이에 구분자를 삽입합니다. 단, 최종 출력은 왼쪽에서 오른쪽 순서로 표시됩니다.

예제

mysql> Select EXPORT_SET(8, '1','0',',', 8);

+-------------------------------+
| EXPORT_SET(8, '1','0',',', 8) |
+-------------------------------+
| 0,0,0,1,0,0,0,0               |
+-------------------------------+

1 row in set (0.00 sec)

mysql> Select EXPORT_SET(8, '1','0',',', 4);

+-------------------------------+
| EXPORT_SET(8, '1','0',',', 4) |
+-------------------------------+
| 0,0,0,1                       |
+-------------------------------+

1 row in set (0.00 sec)

두 예제 모두 첫 번째 인수로 8을 전달했습니다. 이 값은 비트로 변환되면 1000이 되며, 첫 번째 예제에서는 다섯 번째 인수가 8이므로 8비트까지, 두 번째 예제에서는 4이므로 4비트까지만 검사가 진행됩니다. 또한 네 번째 인수로 콤마(,)가 지정되었기 때문에 출력 결과에서 각 값 사이에 콤마가 구분자로 표시되는 것을 확인할 수 있습니다.

앞서 설명했듯이 검사는 오른쪽에서 왼쪽으로 진행됩니다. 예제의 비트 값 1000에서 가장 오른쪽 비트는 0이므로 세 번째 인수인 '0'이 반환되고, 그다음 두 자리도 0이므로 마찬가지로 '0'이 두 개 더 반환됩니다. 그 후 네 번째 자리의 비트는 1이므로 두 번째 인수인 '1'이 반환됩니다. 첫 번째 예제는 8비트까지 검사했기 때문에 출력이 8자리(0,0,0,1,0,0,0,0)로 표시되고, 두 번째 예제는 4비트까지만 검사했기 때문에 4자리(0,0,0,1)만 출력됩니다. 최종 출력은 왼쪽에서 오른쪽 순서로 배치된다는 점도 함께 기억해 두면 좋습니다.