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 :

Comment détecter si il y a pas d'enregistrements doubles ?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut Comment détecter si il y a pas d'enregistrements doubles ?
    Comment détecter à l'aide d'une fonction, si un enregistrement est exactement le meme dans la table ? Si possible bien sur sans tout comparer !


    Merci.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pourquoi veux tu connaitre cette information ?

  3. #3
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Pour être sûr de ne pas écraser 2 enregistrements, et de pouvoir proposer une alternative a l'utilisateur.

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par JBrek
    ...si un enregistrement est exactement le meme dans la table ? Si possible bien sur sans tout comparer !
    Salut!
    Sans tout comparer, ça n'va pas être évident de savoir si un enregistrement est EXACTEMENT le même qu'un autre!
    J'ai bien compris que tu voulais détecter les doublons.
    Tu peux optimiser la fonction de comparaison en la stoppant dès qu'il ya une différence...
    Puis tu passes immédiatement à l'enregistrement suivant, ainsi de suite, à+
    De retour parmis vous après 10 ans!!

  5. #5
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Oui, mais si y a 3'000 enregistrements ? (c'est mon cas)

    Il faudrait pouvoir détecter si y a ou pas une clé primaire ou qqch comme ca...

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    A mon avis, il faut optimiser ta fonction en appronfondissant la comparaison uniquement si il y a des caractères communs.
    Pour te donner un exemple, imagine que tu recherches si 'double' existe déjà (méthode lettre par lettre):

    - Tu commences par activer la fonction de trie pour te concentrer sur la 1ère lettre (d).
    - Tu recherches ensuite le "o". Si il n'y ait pas, tu passes au mot suivant, sinon...
    - Tu recherches la lettre "u". Si il n'y ait pas, tu passes au mot suivant, etc...
    - Si la 1ère lettre du mot suivant est différente de "d", ta recherche est terminée.
    - Tu peux aussi utiliser la longueur de la chaîne pour faire un filtre de plus.

    Ou alors, tu peux comparer directement le mot entier, mais dans ce cas, je n'vois pas l'intérêt de ce topic.
    A moins qu'il existe d'autres méthodes, mais je ne connais pas.
    Quel language comptes-tu utiliser? php?
    De retour parmis vous après 10 ans!!

  7. #7
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Non ta méthode sera encore plus longue, et y aura plus de requètes !!!
    J'utilise Delphi comme langage...

    Mais j'aurai pensé, qu'en faisant des requètes spécials, on pouvait détecter une clé primaire par exemple ?

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je crois pouvoir t'aidez

    Tu joins ta table a elle meme et tu fait apparaitre les uniques

    code :

    select a.* from
    table as a join table as b
    ------la condition de jointures est basés sur tous les camps de de tables
    group by "tous les champs"
    having(a.key) =1

    ca doit marcher

  9. #9
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    et ca va me renvoyer quoi ?

    C'est ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select liste.* from 
    table as a join table as copie_liste 
    group by *
    having(liste.key) =1

  10. #10
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Apparemment j'ai trouvé comment détecter si il y avait une clé, ca devrait me suffir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW INDEX FROM ma_table
    Ensuite, le nom du champs qui a une clé, est la 4ième infos du tableau que revenvoit MySQL.

    bye bye.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/12/2014, 00h02
  2. Comment détecter si le calibrage du GPS est terminé ou pas
    Par maxwel56 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 30/05/2011, 09h25
  3. [Langue Clavier] Comment détecter le changement de la langue ?
    Par Fares BELHAOUAS dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 30/09/2004, 19h26
  4. Comment détecter un changement du réglage de voume sonore ?
    Par mjlub dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2004, 17h43
  5. Comment détecter la frappe d'une touche ?
    Par Bubonik software dans le forum C
    Réponses: 17
    Dernier message: 11/12/2003, 21h52

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