10.1.7.7 BINARY 연산자
BINARY
연산자는 연속적인 문자열을 바이너리 문자열로 변환합니다. 이것은 비교를 문자별로하는 것이 아니라 바이트마다 강제로 실행시키는 간단한 방법입니다. 또한, BINARY
는 말미의 공백이 중요합니다.
mysql>SELECT 'a' = 'A';
-> 1 mysql>SELECT BINARY 'a' = 'A';
-> 0 mysql>SELECT 'a' = 'a ';
-> 1 mysql>SELECT BINARY 'a' = 'a ';
-> 0
BINARY
은 str
CAST(
의 약자이기도합니다. str
AS BINARY)
문자 컬럼 정의의 BINARY
속성은 다른 효과가 있습니다. BINARY
속성으로 정의 된 문자 컬럼은 컬럼 문자 집합의 이진 데이터 정렬이 할당됩니다. 모든 문자 집합에 이진 데이터 정렬이 있습니다. 예를 들어, latin1
문자 집합의 이진 데이터 정렬은 latin1_bin
입니다. 따라서 테이블의 기본 문자 집합이 latin1
의 경우 다음 두 컬럼 정의는 동일합니다.
CHAR (10) BINARY CHAR (10) CHARACTER SET latin1 COLLATE latin1_bin
BINARY
컬럼 속성의 효과는 MySQL 4.1 이전의 효과와는 다릅니다. 이전에는 BINARY
이진 문자열로 처리 된 컬럼되어있었습니다. 이진 문자열은 문자 집합 및 데이터 정렬이없는 바이트 문자열이며, 이진 데이터 정렬을 가지는 비 이진 문자열과 다릅니다. 두 가지 유형의 문자열에 대해서도 비교는 문자열 단위의 수치에 따라 이루어 지지만, 비 이진 문자열은 단위는 문자이며, 문자 집합에 따라 멀티 바이트 문자를 지원합니다. 섹션 11.4.2 "BINARY 및 VARBINARY 형" 을 참조하십시오.
CHAR
, VARCHAR
, 또는 TEXT
컬럼 정의에서 CHARACTER SET binary
를 사용하면 컬럼은 이진 데이터 형식으로 처리됩니다. 예를 들어, 다음의 쌍으로 된 정의는 동일합니다.
CHAR (10) CHARACTER SET binary BINARY (10) VARCHAR (10) CHARACTER SET binary VARBINARY (10) TEXT CHARACTER SET binary BLOB