programing

MySQL 대소문자를 구분하는 쿼리

bestcode 2023. 1. 12. 22:13
반응형

MySQL 대소문자를 구분하는 쿼리

이전에 이 사이트에서 문의한 적이 있습니다만, 충분한 답변을 찾을 수 없었습니다.다음과 같은 질문을 하는 경우:

Select Seller from Table where Location = 'San Jose'

어떻게 하면 '새너제이'나 다른 것이 아닌 '새너제이' 로케이션을 가진 셀러만 반송할 수 있을까요?

MySQL 쿼리는 기본적으로 대소문자를 구분하지 않습니다.다음은 다음 중 하나를 찾고 있는 간단한 쿼리입니다.'value'그러나 그것은 돌아올 것이다.'VALUE','value','VaLuE'등...

SELECT * FROM `table` WHERE `column` = 'value'

좋은 소식은 대소문자를 구분하는 쿼리를 만들어야 하는 경우 연산자를 사용하면 매우 쉽게 실행할 수 있다는 것입니다. 연산자는 바이트 단위로 비교해야 합니다.

SELECT * FROM `table` WHERE BINARY `column` = 'value'

제임스의 훌륭한 답변을 개선하려면:

넣는 것이 좋다BINARY대신 상수 앞에 놓으십시오.

SELECT * FROM `table` WHERE `column` = BINARY 'value'

놓는 것BINARY앞에column그러면 해당 열의 인덱스를 사용할 수 없게 됩니다.

나열된 답변은 맞지만, 대소문자를 구분하는 문자열을 입력하려는 경우 설명서를 읽고 표 정의를 변경하는 것이 좋습니다.

제 경우, 이것은 제 칼럼을 다음과 같이 정의하는 것과 같습니다.

`tag` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''

이것은 당신의 질문을 조정하는 것보다 더 유리하다고 생각합니다.

언급URL : https://stackoverflow.com/questions/7857669/mysql-case-sensitive-query

반응형