반응형
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
반응형
'programing' 카테고리의 다른 글
Java 프로젝트용 빌드 및 버전 번호 부여(ant, cvs, hudson) (0) | 2023.01.12 |
---|---|
Django ModelAdmin의 list_display는 ForeignKey 필드의 속성을 표시할 수 있습니까? (0) | 2023.01.12 |
자동 증가가 mysql에서 생성할 수 있는 가장 큰 ID 번호는 무엇입니까? (0) | 2023.01.12 |
pytest에서 콘솔에 인쇄하는 방법 (0) | 2023.01.12 |
Java 8에서 문자열 목록으로 열거 값 가져오기 (0) | 2023.01.12 |