Ne pas tenir compte de la casse

8 réponses
AuteurMessage

mirage |
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 26/01/2007 à 23:00

Bonsoir,

J'ai une table encodée en UTF-8 sans lequel il y a des données textes. Avant d'enregistrer une valeur, j'ai besoin de vérifier qu'elle n'existe pas déjà dans la table et ce sans tenir compte de la casse.

J'ai beau essayer d'ajouter une clé "UNIQUE" sur le champ concerné, si j'ai "test" en table et que je veux ajouter "Test", ça passe... et il ne faudrait pas !

J'ai regardé dans la doc, apparemment ça viendrait d'un champ BINARY mais je n'ai rien de tout ça dans la table...

Quelqu'un aurait une idée ?

Merci d'avance

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 26/01/2007 à 23:16

J'ai oublié de préciser que mon champ est un varchar.

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 26/01/2007 à 23:27

Tout passer en minuscule avant de faire tes traitement ?

Puisque tu te moque de la casse, ce n'est pas grave de perdre la forme originale. Au pire, tu ne fait le passage en minuscules QUE pour la comparaison, et tu insere sous la forme originale.

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 26/01/2007 à 23:40

Justement, je préfèrerai ne pas avoir à faire ça...

En fait, ma table contient des membres et c'est pour le pseudo que j'ai besoin de vérifier.

Le problème ne se pose que si le champ est en "utf8_bin", s'il est en "latin_1", ça marche.

Je crois que je vais laisser ce champ en latin_1 si je ne trouve pas de réelle solution.

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 26/01/2007 à 23:44

Enfin il va falloir que tu choisisses, on va pas pouvoir le faire pour toi

superfc | Florent
Membre

Photo de superfc

Inscrit le : 01/07/2006

# Le 27/01/2007 à 00:00

D'autre part, pour des pseudos de membres, les caractères classiques (en latin1) suffiront largement.

Moi aussi je passe tout en UTF-8 maintenant. Mais c'est pas la peine de se rajouter des contraintes non nécessaires.

Florent Clairambault - http://florent.clairambault.frOuvrir dans une nouvelle fenetre
Gtalk : superfc@gmail.com

JeromeF | Jérôme
Membre

 

Inscrit le : 10/05/2005

# Le 27/01/2007 à 09:35

sinon tu rajoutes une colonne avec le pseudo en minuscule: ca sera ton unique et fini. Quand tu inscrits tu te sers de ce champ et sinon tu fais comme aujourd'hui

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 27/01/2007 à 09:53

Je vais garder le latin_1 pour ce champ vu que je ne permets pas les accents et les caractères spéciaux donc l'utf8 était même inutile dans ce cas là (sauf pour le reste de la table)

Merci

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 27/01/2007 à 16:42

Sinon pour rappel "utf8_bin" ça veut dire "utf8 + binary", donc normal... tu as tout un pannel de "collations" à base d'utf8 te permettant de faire ce que tu veux (utf8_general_ci par exemple).

Quelques explications dans la doc : http://dev.mysql.com/doc/refman/5.0/fr/charset-gen...Ouvrir dans une nouvelle fenetre

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 14:47:23 | Généré en 5.28ms | Contacts | Mentions légales |