Aller au contenu

Eviter les doublons en faisant un update


Sujets conseillés

Posté

Tu n'as pas du chercher beaucoup alors...

La solution la plus évidente:

SELECT 1 FROM table WHERE colonne1=$valeur1 AND colonne2=$valeur2...

si (pas de résultat)

alors INSERT ...

Ca ça ne fait que rajouter. Si tu veux mettre à jour les anciennes, soit tu rajoutes:

sinon UPDATE table SET colonne3=$valeur3,colonne4=$valeur4... WHERE colonne1=$valeur1 AND colonne2=$valeur2...

soit tu utilises INSERT ... ON DUPLICATE KEY UPDATE ... (http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html).

Dans tous les cas, il faut que tu détermines les colonnes qui identifient un article (colonne1, colonne2 dans les exemples ci-dessus) et celles qui sont juste des valeurs qui peuvent changer pour un même article (colonne3, colonne4 dans les exemples). Idéalement tu devrais avoir un index (unique) sur les premières, voire une clef primaire. C'est obligatoire si tu veux utiliser INSERT ... ON DUPLICATE KEY UPDATE.

Evidemment toutes les valeurs doivent être escapées comme il faut.

Jacques.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...