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.
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.
pourquoi veux tu connaitre cette information ?
Pour être sûr de ne pas écraser 2 enregistrements, et de pouvoir proposer une alternative a l'utilisateur.
Salut!Envoyé par JBrek
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, à+
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...
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?
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 ?
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
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
Apparemment j'ai trouvé comment détecter si il y avait une clé, ca devrait me suffir :
Ensuite, le nom du champs qui a une clé, est la 4ième infos du tableau que revenvoit MySQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SHOW INDEX FROM ma_table
bye bye.
Partager