2013-03-07 53 views
0

MySQL似乎並不是我的專長。我在現有的表中添加了一個timestamp列,其中默認值爲CURRENT_TIMESTAMP。但是,所有現有的行都有空白時間戳(0000-00-00 00:00:00)。我想要做的是使用另一個表的時間戳列更新這些行的時間戳列(名爲ts)。我希望首先匹配兩張表中的兩列。因此,如果(tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1),則使用tb2的時間戳列作爲tb1的時間戳列中的更新值。使用另一個表中的列更新一個表中的timestamp列

這有道理嗎?我將如何編寫這樣的更新聲明?

感謝您的閱讀。所有的幫助表示讚賞。

回答

1

它非常直截了當看到the docs

Update tbl1, tbl2 
set 
    tb1.ts = tbl2.ts 
WHERE (tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) 
    OR (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1) 
0

的最後一個樣本。如果我和你一起去要問什麼的字面解釋,它會是這個樣子:

UPDATE tb1,tb2 SET tb1.ts=tb2.ts 
    WHERE (tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR 
    (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1) 

您可能需要大談周邊的條件。我希望你有一個測試數據庫讓這個工作第一。

相關問題