mettre à jour et inserer sous conditions

Eléphant du PHP | 89 Messages

25 mai 2007, 16:44

Bonjour à tous!
J'ai bien compris la commande SQL UPDATE pour mettre à jour une table T_1 à partir des données de la table T_2 à condition que le champ t_1.champ1 soit égal au champ t_2.champ1.

En revanche quelle est la condition pour insérer les données quand t_1.champ1 est différent de t_2.champ2?

En fait je voudrais à la fois mettre à jour quand les champs sont identiques et inserer quand les champs sont différents.

Est ce la même requête UPDATE ou bien faut-il procéder d'une autre façon?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

25 mai 2007, 16:56

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 89 Messages

25 mai 2007, 17:00

Tout simplement!!!

Merci Mere teresa

Eléphant du PHP | 89 Messages

25 mai 2007, 17:21

Je n'arrive pas à trouver la bonne syntaxe pour remplacer ou inserer en une fois toutes les données de la Table 2 dans la table 1

Code : Tout sélectionner

REPLACE INTO T_1 SET (t_1.c_1=t_2.c_1,....
J'ai bien parcouru le manuel MYSQL mais je plante...

Eléphant du PHP | 259 Messages

25 mai 2007, 18:07

hello,

il existe une méthode assez simple si ta version de mysql est pas trop ancienne :

t'appuyer sur les contraintes d'unicité de ta table (si tu l'as bien conçu... sinon tant pis pour toi !) et utiliser ON DUPLICATE KEY

eg:

Code : Tout sélectionner

INSERT INTO matable (champ1, champ2) VALUES ('val1' , 'val2') ON DUPLICATE KEY UPDATE champ2='val2'...