0

タイムスタンプ列を持つmysqlテーブルがあります。ここで実行したいのは、日時列のタイムスタンプをより新しいものにすることです。

たとえば、最新のレコードが10時間前のものである場合。各行の日時に10時間を追加したいと思います。そのアクションの後、最新のタイムスタンプはvalue = now()になります。

これは1つのクエリで可能ですか?

4

2 に答える 2

1

これは現在動作します(テスト済み):

SELECT MAX(`timestamp`) FROM yourTable INTO @a_variable;
UPDATE yourTable
SET `timestamp` = DATE_SUB(`timestamp`, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), @a_variable) SECOND)

詳細については、マニュアルを参照してください

于 2012-05-24T13:59:33.410 に答える
0

UPDATE クエリでサブクエリを使用してみましたか? (私はこれをテストしていませんが、うまくいくはずです)

UPDATE table
SET timestamp = ADDTIME(timestamp,
                       (SELECT TIMEDIFF(NOW(), timestamp)
                        FROM table
                        ORDER BY timestamp DESC
                        LIMIT 1))
于 2012-05-24T13:21:35.107 に答える