Le panneau de table et les panélistes ont 1 colonne en commun. appelé user_id où c'est un entier par exemple
panneau de table:
UPDATE panelists SET name = 'dummy' WHERE u_email LIKE '%dummy.com';
panélistes de table:
--------------------------------------------------------- user_id email_active --------------------------------------------------------- 5 1 6 1 1 1
ce dont j'ai besoin à faire est de changer le nom où l'email inclut "@ dummy.com" en factice et pour changer l'email_active en tous les e-mails factices du panneau en 2 au lieu de 1.
Je ne sais pas comment faire cela J'ai réussi à changer le nom dans panéliste en recherchant les e-mails factices utilisant
--------------------------------------------------------- user_id email name --------------------------------------------------------- 5 hello@dummy.com john 6 man@city.com Ronn 1 fun@dummy.com Sat
mais je ne sais pas comment mettre à jour l'email_active dans le tableau du panneau.
3 Réponses :
UPDATE panelists JOIN panel ON panelists.user_id = panel.user_id SET panelists.email_active = '2' WHERE panel.email LIKE '%dummy.com';
Vous pouvez changer 2 tables à partir d'une requête comme ceci:
-- step 1 UPDATE panel SET email = "dummy" WHERE email like "%@dummy.com"; -- step 2 UPDATE panelists t1 JOIN panel t2 on t1.user_id = t2.user_id AND t2.email = "dummy" SET email_active = 2;
Mais dans le cas où vos tables sont grandes (contient beaucoup de lignes), je vous conseille plutôt d'exécuter 2 requêtes distinctes, comme ceci:
UPDATE panel t1, panelists t2 SET t1.email = "dummy", t2.email_active = 2 WHERE t1.user_id = t2.user_id AND t1.email like "%@dummy.com";
Vous pouvez modifier 2 tables à partir d'une requête comme ceci:
UPDATE panelists as a JOIN panel as s ON s.uid = a.uid SET a.pstatus = '2', s.u_name = 'dummy' WHERE s.u_email LIKE '%dummy.com';