Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi l'opérateur LIKE de MySQL est-il sensible à la casse lors de l'utilisation d'une chaîne binaire ?

Barbara Streisand
Libérer: 2024-11-07 19:00:03
original
407 Les gens l'ont consulté

Why is MySQL's LIKE Operator Case Sensitive When Using a Binary String?

Sensibilité à la casse avec LIKE dans MySQL

Lors de l'exécution d'une recherche LIKE dans MySQL à l'aide de la requête "SELECT concat_ws(title,description) comme concaténé AYANT concaténé LIKE '%SearchTerm%';", on peut remarquer que les recherches sont sensibles à la casse, même si la table est codée à l'aide du classement utf8_general_ci et du moteur de stockage MyISAM.

La raison de ce comportement est que l'opérateur LIKE effectue des comparaisons sensibles à la casse lorsque l'un des opérandes est une chaîne binaire. Dans ce cas, le champ « concaténé » est une chaîne binaire, ce qui rend la recherche sensible à la casse.

Pour résoudre ce problème et rendre la recherche insensible à la casse, il est recommandé d'utiliser le mot-clé BINARY avec le LIKE opérateur :

SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
Copier après la connexion

Cela garantit que la comparaison de chaînes est effectuée de manière binaire, en ignorant les différences de casse.

Alternativement, le mot-clé COLLATE peut être utilisé avec le classement utf8_bin pour créer le recherche insensible à la casse :

SELECT ....
FROM ....
WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
Copier après la connexion

Ces deux méthodes modifient efficacement le comportement de recherche, le rendant insensible à la casse tout en préservant les avantages en termes de performances du classement utf8_general_ci.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!