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

Requêtes MySQL Discussion :

Problème de Comparaison de deux chaines de caractéres


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Problème de Comparaison de deux chaines de caractéres
    Salut,

    Je voudrais faire une requête qui me permettra d'identifier s'il existe un enregistrement ayant la même valeur qu'un autre, sachant que le type de la colonne est varchar, je m'explique: je doit comparer enfin du compte deux chaînes de caractéres avec une certaine tolérance, par exemple pour les deux chaines suivantes:

    sphere thymique
    et
    sphère thymique

    ma requête doit tolérer l'accent et supposer que ces deux chaînes sont les même.

    alors que pour sphère blabla, ma requête doit s'aperçevoir qu'il y a une différence.
    J'ai l'idée mais je ne sais pas trops comment construire ma requête

    aidez moi svp

    Merci infiniment.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 29
    Points : 33
    Points
    33
    Par défaut Comparer les chaines en majuscules
    Souvant pour éviter les problèmes d'accents on capitalise les 2 chaines pour les comparer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from t1,t2 
    where UPPER(t1.chaine1) = UPPER(t2.chaine2)
    En espérant que ça puisse vous aider.
    Bonne journée.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Ce n'est pas exactement ce que je cherche, mais ça me donne une nouvelle idée merci.
    j'ai exécuté cette requête mais, elle ne me retourne rien, pourtant, elle doit me retourner quelque chose, qu'est ce que vous en pensez?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT sph_id FROM sphere where upper(sph_desc) ='SPHERE THYMIQUE';

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 29
    Points : 33
    Points
    33
    Par défaut ça dépend du SQL
    Désolée sous sybase c'est upper mais si c'est sour oracle c'est UCase pour mettre en majuscule.

    Ensuite ça dépend sur quoi vous faites tourner votre requête, c'est du sql sous mysql, de l'acces ? car p. ex acces garde les accents en passant en upper case, tandis que d'autres langages le font pas.

    Merci de donner plus de précision.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    , elle ne me retourne rien parce que je n'ai pas une colonne ayant comme valeur: "SPHERE THYMIQUE".
    Merci, sava pour la comparaison avec upper, je travaille sous My Sql: il garde les accent en majuscule

    J'ai une autre question, toujours pour le même sujet:

    comment parcourire une chaine de caractére en sql. ce que je veux faire, c'est comparer chaque mots d'une chaine avec tout les mots se trouvant dans l'autres chaine, come par exemple:

    "je suis un étudiant en informatique" et " je fait mes études en 1ére année informatique à tel place" : il ya "étud" et "informatique"

    je veux une requête qui me retourne, le nombre d'occurence des mots qui se répétent d'une chaine dans une autre. qu'est ce que je doit faire?

    | mots | nombre d'occurence |
    _________________________
    | étud | 1 |
    |informatique| 1

    je m'excuse si ma question n'est pas claire.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 29
    Points : 33
    Points
    33
    Par défaut euh besoin de plus de détails
    est-ce vraiment 2 chaines, ou c'est rechercher le nombre d'occurence des mots d'une chaine, dans le champ x de la table y ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Non ce sont deux chaines, la premiére est saisie par l'utilisateur, et la deuxiéme se trouve dans une table de ma base de donnée:
    pour simplifier les choses: j'ai une table signe, contenant deux colonnes: id_signe et desc_signe, de type text, l'utilisateur veux ajouter ou insérer un nouveau enregistrement dans ma table; une nouvelle description d'un nouveau signe.
    Je doit donc vérifier s'il existe déja un enregistrement ayant la même description du signe que la description entrée par l'utilisateur: c'est un peut compliqué, ou c'est moi qui fait compliquer les choses, en ts cas si vous avez une meillheure idée, merci de me la décrire.

    je dit bien description, ça pourrais être une petite paragraphe, ça va un peut jouer sur le sens des mots, c'est pour ça , que j'ai eu l'idée d'extraire le nombre de répétition des mots dans chaque chaîne.


    En fin du compte, je ne veux pas avoir dans ma table deux signes qui ont presque la même description et des id différents, comment est ce que je doit faire.

    Avez vous une idée pour ça?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 29
    Points : 33
    Points
    33
    Par défaut requête
    ok, avec les explications c'est un peu plus clair.

    Donc si on reprend.
    "je suis un étudiant en informatique" et " je fait mes études en 1ére année informatique à tel place" : il ya "étud" et "informatique"

    je veux une requête qui me retourne, le nombre d'occurence des mots qui se répétent

    | mots | nombre d'occurence |
    _________________________
    | étud | 1 |
    |informatique| 1
    Il vous faut :
    1) exploser tous les mots
    2) les stocker p.ex dans une table
    3) aller chercher tous les enregistrement description id qui ont le plus de mots en commun avec les mots stockés dans la table temporaire et attention si vous prenez les mots de 2 lettre, les le, la et...ect.

    Et évidemment avec la gestion des accents, majuscules.... c'est du boulot.

    Bon courage.

  9. #9
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par gruick_rob Voir le message
    ok, avec les explications c'est un peu plus clair.

    Donc si on reprend.


    Il vous faut :
    1) exploser tous les mots
    2) les stocker p.ex dans une table
    3) aller chercher tous les enregistrement description id qui ont le plus de mots en commun avec les mots stockés dans la table temporaire et attention si vous prenez les mots de 2 lettre, les le, la et...ect.

    Et évidemment avec la gestion des accents, majuscules.... c'est du boulot.

    Bon courage.
    Re

    Merci, c'est à peut prés ça , en négligeant les accents, les majuscules...et ts ce qui peut me compliqué d'avantage les choses, je veux récupérer chaque mots à part, les stocker dans un table comme vous me l'avez dit, et ensuite les comparé, on va déclaré une autre table pour les "la, le, à, de, des..."
    Mais je n'ai aucune idée comment faire ça, ça sera une fonction? comment faire ça? je m'excuse si j'ai trops demandé et merci beaucoup pour votre patience

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 29
    Points : 33
    Points
    33
    Par défaut Vive les tutoriels
    Je pense que vous pouvez faire beaucoup en sql, mais il va falloir regarder les tutoriels et autres.... bon courage.

    http://mysql.developpez.com/

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Regarde plutôt ce tutoriel là. Il est voisin de ce que tu cherches à faire.
    C'est pour SQL Server mais ça doit pouvoir s'adapter à MySQL.

Discussions similaires

  1. Comparaison de deux chaines de caractères
    Par t.soufian dans le forum Langage
    Réponses: 16
    Dernier message: 06/04/2012, 13h48
  2. Comparaison de deux chaines de caractères
    Par khaled.mann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/06/2009, 11h00
  3. comparaison de deux chaines de caractères
    Par Toomaaaaa dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2008, 18h03
  4. comparaison de deux chaines de caractères en asp
    Par MortDansLAme dans le forum ASP
    Réponses: 7
    Dernier message: 10/01/2008, 12h36
  5. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 14h26

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