Maison >base de données >tutoriel mysql >Pourquoi la recherche insensible à la casse dans MySQL avec l'opérateur LIKE et l'encodage utf8_general_ci est-elle sensible à la casse ?

Pourquoi la recherche insensible à la casse dans MySQL avec l'opérateur LIKE et l'encodage utf8_general_ci est-elle sensible à la casse ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 14:12:021107parcourir

Why is Case-Insensitive Searching in MySQL with LIKE Operator and utf8_general_ci Encoding Case-Sensitive?

Recherche insensible à la casse dans MySQL

Cet article explore le problème où les requêtes MySQL utilisent l'opérateur LIKE dans les tables avec l'encodage utf8_general_ci et le moteur de stockage MyISAM entraînent des recherches sensibles à la casse.

Pour résoudre ce problème, deux solutions sont recommandées :

1. Utilisation de chaînes binaires :

En ajoutant le mot-clé BINARY à l'opérateur LIKE, une recherche insensible à la casse peut être réalisée :

SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';

Cette approche fonctionne mieux que les autres car elle force la chaîne binaire comparaison, le rendant plus efficace.

2. Utilisation de COLLATE :

Alternativement, le mot-clé COLLATE peut être utilisé pour spécifier une règle de classement spécifique :

SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;

En utilisant le classement utf8_bin, une comparaison insensible à la casse est appliquée. Bien que cette méthode offre plus de flexibilité, elle peut avoir un léger impact sur les performances par rapport à l'approche des chaînes binaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn