IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

ne pas faire la distinction entre majuscule et minuscule


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut ne pas faire la distinction entre majuscule et minuscule
    Bonjour a tous,

    Je suis sur un forum phpbb qui était sous 1and1, on est passé sous OVH.

    OVH possede un MYSQL qui fait la distinction entre maj et miniscule.

    C'est un soucis pour la connexion, mais aussi pour la recherche des membres puisqu'on a un liste de a à z. Cependant, le résultat de la REQ nous sort uniquement des pseudos ayant ces lettres minuscules. les majuscules ne sont pas pris en compte :

    Le code de la recherche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $select_letter .= ( $by_letter == chr($i) ) ? chr($i) . '&nbsp;' : '<a href="' . append_sid("memberlist.$phpEx?letter=" . chr($i) . "&amp;mode=$mode&amp;order=$sort_order&amp;start=$start") . '">' . chr($i) . '</a>&nbsp;';
    la requete en elle meme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM phpbb_users WHERE user_id <> -1 AND username NOT LIKE 'a%' AND username NOT LIKE 'b%' AND username NOT LIKE 'c%' AND username NOT LIKE 'd%' AND username NOT LIKE 'e%' AND username NOT LIKE 'f%' AND username NOT LIKE 'g%'...........
    ORDER BY user_regdate ASC LIMIT 0, 50

    est-ce que ca viendrait de la fonction chr() ?

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    La meilleure solution est d'utiliser la fonction UPPER() qui convertit en majuscules, et de l'utiliser aussi bien sur le champ où on effectue la recherche (username dans ton cas) que sur la valeur recherchée.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where upper(username) like upper('a%')
    ced

  3. #3
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    merci ced, mais cela venait de Mysql qui était CS : case sensitive, a cause de l'interclassement
    ta fonction marche aussi

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    OK
    Cela dit, la solution que je donne permet de s'affranchir de tout paramétrage sur l'interclassement

    ced

  5. #5
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    ouais je viens de la tester, j'ai édité lors de ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/03/2015, 19h46
  2. Réponses: 0
    Dernier message: 25/02/2010, 04h30
  3. [XML] Différence entre Majuscule et Minuscule
    Par goddet dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/03/2007, 14h40
  4. Différence entre majuscule et minuscule
    Par teffal dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 14h13
  5. Différence entre majuscule et minuscule dans une requête
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2004, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo