[résolu]Mysql et doublon

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


chava2b
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

[résolu]Mysql et doublon

Message le Mer Juil 27, 2005 15:15

Salut,

Juste une ptit' question sur mysql... ben oui parfois j'ai du mal à reflechir...

bref, je veux avoir tous les resultats lorsqu'un enregistrement dans un champ est identique à un autre...
En fait j'ai un champs 'lien' dans ma table, je veux tous les resultats dès lors que l'enregistrement dans le champs 'lien' est identique à un autre...

J'explique encore un peu, meme moi je ne comprends rien :

j'ai des doublon dans mon champs 'lien'. je veux les selectionner!!!!

Une idée ?

Merci
Olivier
Dernière édition par chava2b le Mer Juil 27, 2005 16:12, édité 1 fois.


cyberdesign
Nouveau WRInaute
 
Messages: 22
Inscription: Sam Déc 04, 2004 15:52

Message le Mer Juil 27, 2005 15:33

Bonjour,

Je ne sais pas si ça marche avec mySQL mais ça marche sur la plupart des SGBD:
Code: Tout sélectionner
select champ1, count(*) as nb from matable
group by champ1
having nb > 1


Cordialement,


jerome347
WRInaute passionné
WRInaute passionné
 
Messages: 573
Inscription: Ven Mar 19, 2004 13:09

Message le Mer Juil 27, 2005 15:33

un truc dans le genre :

Code: Tout sélectionner
$select = "select lien,count(*) AS Number from ta_table group by lien having Number > 1 ORDER BY Number desc;";
$query = mysql_query($select);
while ($row = mysql_fetch_array($query)) {
   echo $row[lien].' => '.$row[Number].' fois<br>';
}


devrait afficher :
lien1 => 4 fois
lien2 => 2 fois
etc.
(pour tous les liens qui apparaissent plus d'une fois)


chava2b
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Mer Juil 27, 2005 15:42

en fait ca serait plutot du style :

Code: Tout sélectionner
select * from table where count(lien)>1


Mais ca, ca ne marche pas. le truc c'est que je ne veux pas grouper les resultats


cyberdesign
Nouveau WRInaute
 
Messages: 22
Inscription: Sam Déc 04, 2004 15:52

Message le Mer Juil 27, 2005 15:55

Essaye ça:
Code: Tout sélectionner
select * from table a,
(select lien, count(*) as nb from table group by lien having nb > 1) b
where a.lien = b.lien

mais je ne sais pas si ça marche sous mySQL.

Sinon, tu n'as pas d'autre solution que grouper car count est une fonction de groupe.

sgaze
WRInaute passionné
WRInaute passionné
 
Messages: 538
Inscription: Lun Fév 02, 2004 16:54

Message le Mer Juil 27, 2005 15:57

Et ça ?

Code: Tout sélectionner
select * from matable where champ1 in (
select champ1 from matable
group by champ1
having count(*) > 1)


Ca marche peut-être si ta version de mysql est au moins 4.1 je crois

EDIT: sinon je crains qu'il ne soit pas possible de le faire en une seule fois => passer par une table temp


chava2b
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Mer Juil 27, 2005 16:12

Merci samgaz !!

Ca marche... un peu long car y a beaucoup d'enregistrements, mais c'est exactement ce que je voulais!


Bon demain, je me met au subselect !!!!

(PS : les autres soluces ne fonctionnnaient pas)

sgaze
WRInaute passionné
WRInaute passionné
 
Messages: 538
Inscription: Lun Fév 02, 2004 16:54

Message le Mer Juil 27, 2005 16:25

chava2b a écrit:Ca marche... un peu long car y a beaucoup d'enregistrements

Tu as un index sur champ1 ? Ca devrait améliorer grandement la vitesse (sauf si champ1 a globalement peu de valeurs différentes dans la table)

chava2b a écrit:(PS : les autres soluces ne fonctionnnaient pas)

Même celle de cyberdesign 8O ?


chava2b
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Ven Déc 05, 2003 16:44

Message le Mer Juil 27, 2005 16:32

Index : pas besoin, c'est juste pour cette fois, histoire de virer tous les doublons manuellement car c'est en fonction d'autres champs...

PS: Bravo aussi a cyberdesign, j'ai du me louper en recopiant car ca marche aussi!


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités