Maison >base de données >tutoriel mysql >Comment MySQL gère-t-il les signes diacritiques dans les jeux de caractères et les classements ?
Mappage des caractères du jeu de caractères MySQL
Dans MySQL, le comportement par défaut de nombreux classements Unicode, y compris utf8_general_ci et utf8_unicode_ci, consiste à mapper les caractères avec signes diacritiques, tels que « åäö », à leurs caractères de base sans signes diacritiques, tels que « aao ». Cela signifie que les requêtes utilisant des caractères diacritiques ne produisent pas toujours les résultats attendus.
Ce comportement affecte les requêtes dans les contextes de terminal et PHP. Cela découle des règles spécifiques de codage et de classement des caractères utilisées par MySQL.
Raisons du mappage
Le mappage des caractères diacritiques avec leurs caractères de base est destiné à fournir une expérience de recherche plus générale et cohérente. En traitant les caractères avec et sans signes diacritiques comme équivalents, la base de données peut renvoyer des résultats qui satisfont un plus large éventail de requêtes des utilisateurs.
Désactivation du mappage
Si vous souhaitez désactiver ce mappage et effectuer des recherches sensibles à la casse tout en préservant les caractères diacritiques, vous pouvez utiliser les méthodes suivantes :
Spécifier le classement pour des requêtes spécifiques :
Lors de l'exécution de requêtes, vous pouvez spécifier explicitement le classement à l'aide du mot-clé COLLATE. . Par exemple, vous pouvez utiliser la requête suivante pour conserver les signes diacritiques :
<code class="sql">select * from topics where name COLLATE utf8_bin = 'Harligt';</code>
Alternatives
Si vous avez besoin de recherches non sensibles à la casse sans le conversion tréma, vous pouvez envisager d'utiliser un index de texte intégral avec le tokenizer ASCII_WS. Ce tokenizer ignore la ponctuation et les signes diacritiques, permettant des recherches efficaces insensibles à la casse.
Conclusion
Le traitement par MySQL des caractères diacritiques peut affecter le comportement des requêtes de recherche. Comprendre les règles de mappage par défaut et choisir les options de classement appropriées est crucial pour garantir que les requêtes reflètent avec précision les critères de recherche prévus.
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!