스페인어 악센트에 대한 MySQL 분음 부호를 구분하지 않는 검색
악센트 문자가 포함된 데이터를 처리할 때 둔감하게 유지되는 효과적인 검색을 수행하는 것이 어려울 수 있습니다. 분음 부호에. 이는 특히 단어에 악센트(á, é, í, ó, ú)가 포함되는 스페인어와 같은 언어에 적합합니다.
문제:
다음과 같은 데이터베이스 쿼리 "SELECT * FROM table WHERE word LIKE '%word%'"는 검색어에 "lápiz" 대신 "lapiz"와 같이 다양한 악센트 변형이 포함된 경우 정확한 결과를 반환하지 않을 수 있습니다.
해결책 : 문자 집합 및 데이터 정렬
발음 부호를 구분하지 않는 검색을 활성화하려면 데이터베이스 연결에 적합한 문자 집합과 데이터 정렬을 설정하는 것이 중요합니다. MySQL에서는 다음 명령을 사용하여 이를 수행할 수 있습니다.
SET NAMES latin1;
또는
SET NAMES utf8;
"latin1" 문자 집합은 일반적으로 제한된 수의 스페인어와 같은 언어에 사용됩니다. 악센트가 있는 문자로 구성됩니다. "utf8"은 더 넓은 범위의 악센트 문자를 지원하는 보다 포괄적인 문자 집합입니다.
문자 집합이 설정되면 다음 구문을 사용하여 발음 구별 부호를 구분하지 않는 검색을 수행할 수 있습니다.
SELECT * FROM table WHERE word LIKE _utf8'search_term'
예:
mysql> SET NAMES latin1; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 0 | +-----------------------+
이 예에서 "lapiz"를 검색하면 "latin1" 문자 집합이 분음 부호를 상호 교환 가능한 것으로 간주하지 않기 때문에 "lápiz"가 반환되지 않습니다.
mysql> SET NAMES utf8; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 1 | +-----------------------+
그러나 "utf8" 문자 집합을 사용하면 분음 부호를 구분하지 않기 때문에 검색 시 "lápiz" 및 "lapiz"가 정확하게 일치합니다.
위 내용은 스페인어 악센트에 대해 MySQL에서 분음 부호를 구분하지 않는 검색을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!