2015-03-13 1 views
-1

J'ai deux tables tbl1 et tbl2 elles ne sont pas liées l'une à l'autre.Mettre à jour plusieurs tables dans mysql dans une requête

Je fais deux requêtes sur ces tables.

UPDATE tbl1 SET exp = 1 WHERE id IN(1,2,3,4);

UPDATE tbl2 SET exp = 1 WHERE id IN(2,1,4,5);

Maintenant, comment puis-je le rendre plus optimisé?

+3

Pourquoi vous voulez que ce ???? –

+1

Down voté, en raison du fait que la question manque d'informations. – PaulFrancis

+0

Que diriez-vous de "syntaxe à tables multiples"? http://dev.mysql.com/doc/refman/5.5/fr/update.html – Marvin

Répondre

2

Vous pouvez utiliser quelque chose comme ceci:

UPDATE tbl1, tbl2 
SET tbl1.exp = 1, 
    tbl2.exp = 1 
WHERE tbl1.id IN(1,2,3,4) 
AND tbl2.id IN(2,1,4,5) 
+0

Ya, mais dites si' tbl2.id = 2' n'existe pas alors toute la mise à jour ne fonctionne pas !!! –

+0

@SlimShady: Ça marche, avez-vous essayé? – Marvin

+0

Oui cela ne fonctionne que si tous les identifiants spécifiés dans 'IN' sont présents si un' id' dans 'IN' n'existe pas dans la table alors il' affecte zéro rows' @Marvin –