Je souhaite effectuer une recherche sensible à la casse dans ma requête SQL. Mais par défaut, SQL Server ne considère pas la casse des chaînes.
Une idée sur la façon de faire une recherche sensible à la casse dans une requête SQL?
sql
sql-server
Veera
la source
la source
/schwarz-weiß
contre:/schwarz-weiss
En utilisant le classement ou la conversion en binaire, comme ceci:
La duplication du nom d'utilisateur / mot de passe existe pour donner au moteur la possibilité d'utiliser des index. Le classement ci-dessus est un classement sensible à la casse, remplacez-le par celui dont vous avez besoin si nécessaire.
Le second, la conversion en binaire, pourrait être fait comme ceci:
la source
like "*word or phrase*"
recherche SQL régulière serait insérée.Vous pouvez effectuer la requête en utilisant convert to varbinary - c'est très simple. Exemple:
la source
UTILISER BINARY_CHECKSUM
la source
utiliser HASHBYTES
... dans la clause where
ou pour trouver une valeur
la source
utilisez Latin1_General_CS comme classement dans votre base de données SQL
la source
Dans MySQL, si vous ne souhaitez pas modifier le classement et que vous souhaitez effectuer une recherche sensible à la casse, utilisez simplement un mot-clé binaire comme celui-ci:
la source
la source
Comme d'autres l'ont dit, vous pouvez effectuer une recherche sensible à la casse. Ou changez simplement le format de classement d'une colonne spécifiée comme moi. Pour les colonnes Utilisateur / Mot de passe de ma base de données, je les change en classement via la commande suivante:
la source