在一个查询中更新mysql中的多个表

问题描述:

我有两个表tbl1tbl2它们彼此没有关系。在一个查询中更新mysql中的多个表

我在这些表上做了两个查询。

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

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

现在,我怎样才能使它更加优化?

+3

为什么你要这样???? – 2015-03-13 12:33:16

+1

向下投票,因为问题缺乏信息。 – PaulFrancis 2015-03-13 12:34:55

+0

“多表语法”如何? http://dev.mysql.com/doc/refman/5.5/en/update.html – Marvin 2015-03-13 12:37:38

您可以使用这样的事情:

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,但是说如果'tbl2.id = 2'不存在,那么整个更新不起作用! – 2015-03-13 12:47:36

+0

@SlimShady:它确实有用,你试过了吗? – Marvin 2015-03-13 12:55:20

+0

是的,它只适用于IN中指定的所有ID都存在,如果IN中有任何'id'不存在于表中,那么它会影响零行@Marvin – 2015-03-13 12:58:49