MySQL의 대소문자 구분 없는 검색
이 게시물에서는 utf8_general_ci 인코딩 및 MyISAM 스토리지 엔진이 있는 테이블에서 LIKE 연산자를 사용하는 MySQL 쿼리의 문제를 살펴봅니다. 대소문자를 구분하여 검색합니다.
이 문제를 해결하려면 두 가지 권장 해결 방법이 있습니다.
1. 바이너리 문자열 사용:
LIKE 연산자에 BINARY 키워드를 추가하면 대소문자를 구분하지 않고 검색할 수 있습니다.
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
이 접근 방식은 바이너리 문자열을 강제하므로 다른 접근 방식보다 더 나은 성능을 발휘합니다. 비교하여 더욱 효율적으로 만듭니다.
2. COLLATE 사용:
또는 COLLATE 키워드를 사용하여 특정 정렬 규칙을 지정할 수 있습니다.
SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
utf8_bin 데이터 정렬을 사용하면 대소문자를 구분하지 않는 비교가 적용됩니다. 이 방법은 더 많은 유연성을 제공하지만 이진 문자열 접근 방식에 비해 성능에 약간의 영향을 미칠 수 있습니다.
위 내용은 LIKE 연산자와 utf8_general_ci 인코딩을 사용하여 MySQL에서 대소문자를 구분하지 않고 검색하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!