0

MySQL は私の得意分野ではないようです。timestampデフォルトが であるべき既存のテーブルに列を追加しましたCURRENT_TIMESTAMP。ただし、既存のすべての行には空白のタイムスタンプ (0000-00-00 00:00:00) があります。私がしたいのは、ts別のテーブルのタイムスタンプ列を使用して、これらの行のタイムスタンプ列 (という名前) を更新することです。最初に一致させたい両方のテーブルに 2 つの列があります。したがって、(tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1) の場合、tb2のタイムスタンプ列を tb1 のタイムスタンプ列の更新値として使用します。

それは理にかなっていますか?このような更新ステートメントをどのように記述しますか?

読んでくれてありがとう。すべての助けに感謝します。

4

2 に答える 2

1

その非常に簡単なドキュメントの最後のサンプルを参照してください

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)
于 2013-03-07T03:50:23.043 に答える
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)

あなたはそこでの条件をいじくり回す必要があるかもしれません。これを最初に機能させるためのテストデータベースがあることを願っています。

于 2013-03-07T03:51:07.657 に答える