Maison >base de données >tutoriel mysql >Comment puis-je réaliser des comparaisons sensibles à la casse dans les classements MySQL ?

Comment puis-je réaliser des comparaisons sensibles à la casse dans les classements MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-21 07:08:10236parcourir

How Can I Achieve Case-Sensitive Comparisons in MySQL Collations?

Sensibilité à la casse dans les classements MySQL

Il est de notoriété publique que les classements MySQL se terminent par "_ci", indiquant des comparaisons insensibles à la casse. Cependant, il peut y avoir des scénarios dans lesquels les utilisateurs nécessitent un classement sensible à la casse.

Solution :

Selon le manuel MySQL : http://dev.mysql.com/ doc/refman/5.0/en/charset-mysql.html

  1. Utilisez le suffixe "_cs" pour définir la sensibilité à la casse dans classement.
  2. Obtenez une liste de classements "_cs" à l'aide de la requête :
SHOW COLLATION WHERE COLLATION LIKE "%_cs"

Considérations supplémentaires pour UTF-8 :

La recherche indique qu'il n'existe aucun classement UTF-8 utilisant "_cs" dans MySQL. Pour les champs UTF-8 sensibles à la casse, il est recommandé d'utiliser "utf8_bin".

Remarque :

"utf8_bin" peut affecter la fonctionnalité ORDER BY. Pour atténuer cela, utilisez ce qui suit syntaxe :

ORDER BY column COLLATE utf8_general_ci

Références :

  • http://forums.mysql.com/read.php?103,19380,20 0971#msg-200971
  • http://forums.mysql.com/read.php?103,156527,198794#msg-198794

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