2015-03-13 73 views
-1

我有兩個表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

回答

2

您可以使用這樣的事情:

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