Utilisation du classement pour les recherches sensibles aux accents dans MySQL
Lorsque vous effectuez des recherches en texte intégral dans MySQL, il peut être nécessaire de prendre en compte l'accent des caractères sensibilité. Dans cette situation, vous pourriez rencontrer un défi lorsque vous tenterez de faire la différence entre des mots accentués et non accentués, comme le montre l'exemple fourni dans la question.
Pour résoudre ce problème et garantir que les recherches sont sensibles à l'accent, vous avez deux options :
Déclarer le classement sensible aux accents :
Modifier le classement du champ en question pour utiliser un classement binaire, tel que utf8_bin. Cela comparera les octets codés en UTF-8 en tant que données brutes, ce qui entraînera une sensibilité aux accents.
ALTER TABLE words ALTER COLUMN word VARCHAR(10) COLLATE utf8_bin;
Utiliser la clause Collate dans la requête :
Si vos recherches sont généralement insensibles aux accents mais que vous avez besoin d'une exception pour une requête spécifique, vous pouvez ajouter la clause COLLATE au champ problématique dans votre requête :
SELECT * FROM `words` WHERE `word` = 'abád' COLLATE utf8_bin;
Considérations supplémentaires pour MySQL 8.0 et les versions futures :
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!