Salut à tous,
J'essaie de supprimer les doublons d'une de mes tables MySQL, pour cela je me suis inspiré de ce tuto mais j'ai un peu de mal avec la requête qui supprime les doublons.
Voici les 3 colonnes de ma table MySQL qui m'intéressent :
La colonne "Num" est du type int et sa valeur est unique.
La colonne "Num produit" est du type vachar et il peut y avoir des doublons dans cette colonne.
La colonne "Prix total" est du type decimal.
Je cherche les doublons de ma colonne "Num produit" et je souhaite supprimer ces doublons en fonction de leur prix, qui sont classés du plus grand au plus petit. On laisse donc dans la table le produit qui est le moins cher.
Voici la requête mysql que j'ai faite :
Cette requête ne supprime pas les doublons, voyez-vous des erreurs dans ma requête MySQL ci-dessus ?
Merci pour votre aide.
J'essaie de supprimer les doublons d'une de mes tables MySQL, pour cela je me suis inspiré de ce tuto mais j'ai un peu de mal avec la requête qui supprime les doublons.
Voici les 3 colonnes de ma table MySQL qui m'intéressent :
Num
Num produit
Prix total
La colonne "Num" est du type int et sa valeur est unique.
La colonne "Num produit" est du type vachar et il peut y avoir des doublons dans cette colonne.
La colonne "Prix total" est du type decimal.
Je cherche les doublons de ma colonne "Num produit" et je souhaite supprimer ces doublons en fonction de leur prix, qui sont classés du plus grand au plus petit. On laisse donc dans la table le produit qui est le moins cher.
Voici la requête mysql que j'ai faite :
Code:
$result = get_requete("SELECT COUNT(*) AS nbr_doublon, `Num produit` FROM `$stock_produits` WHERE $stock_produits.`Num produit`!='' AND $stock_produits.`Num produit`!='0' AND $stock_produits.`Num produit`!='1' GROUP BY `Num produit` HAVING COUNT(*) > 1");
while($voir = $MysqliFetchArray($result))
{
get_requete("DELETE FROM `$stock_produits`
LEFT OUTER JOIN (
SELECT MAX(Prix total) as prix, `Num produit`, `Prix total`
FROM `$stock_produits`
GROUP BY `Num produit`
) as t1
ON `$stock_produits`.`Prix total` = t1.prix
WHERE t1.prix IS NULL");
Merci pour votre aide.