Bonjour,
Je développe un module en PHP de suppression de doublons pour le projet d'études. Le module doit trouver les doublons dans la base de données grâce aux valeurs de tag et peut-être aux tailles des fichiers musicaux. J'ai pensé aussi à ISRC, un des tags mais qui n'est pas présent sur tous les fichiers musicaux. Et j'ai une table (ref_tag) d'une base de données présentée comme suit :
Explications sur la table :
id_ : id de chaque enregistrement
Value_REF_TAG : valeur d'un tag
MUSIC_id_MUSIC : id de musique
TAG_idTAG : id de tag
NOTE: tag = titre/numéro de chanson/artiste/date/etc
Et j'ai essayé quelques requêtes pour les enregistrements doublons :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //PHP $table = "ref_tag" ; $MUSIC_id_MUSIC = "MUSIC_id_MUSIC" ; $id_ = "id_" ; $TAG_idTAG = "TAG_idTAG" ; $Value_REF_TAG = "Value_REF_TAG" ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //Compte le nombre de doublons => fonctionne SELECT COUNT(*) AS nbr_doublon, $Value_REF_TAG FROM $table GROUP BY $Value_REF_TAG HAVING COUNT(*) > 1Au final, je veux relier les valeurs que j'obtiens avec la dernière requête aux musique que ça correspond, c'est à dire musique 0, 1 et 2 (voir table).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //Récupère les valeurs des enregistrements doublons => fonctionne SELECT $id_ , $Value_REF_TAG , $MUSIC_id_MUSIC FROM $table t1 WHERE EXISTS( SELECT * FROM $table t2 WHERE LOWER(t1.$MUSIC_id_MUSIC) <> LOWER(t2.$MUSIC_id_MUSIC) AND LOWER(t1.$TAG_idTAG) = LOWER(t2.$TAG_idTAG) AND LOWER(t1.$Value_REF_TAG) = LOWER(t2.$Value_REF_TAG) )
Il faut que j'obtienne une sorte de tableau comme :
J'espère que je me suis bien exprimé.MUSIC_id_MUSIC = 0
---valeur_doublon_0
---valeur_doublon_1
MUSIC_id_MUSIC = 1
---valeur_doublon_0
---valeur_doublon_1
etc
Merci d'avance !
Partager