|User_ID |Weekly_Score|Total_Score|
これは私のテーブルで、User_ID は主キーです。新しい週の始まりで Weekly_score の値を 0 に更新するクエリを作成するにはどうすればよいですか? (先週のスコアは 20 で、合計スコアは 50 です。新しい週の開始では、0 と 50 になるはずです。)
|User_ID |Weekly_Score|Total_Score|
これは私のテーブルで、User_ID は主キーです。新しい週の始まりで Weekly_score の値を 0 に更新するクエリを作成するにはどうすればよいですか? (先週のスコアは 20 で、合計スコアは 50 です。新しい週の開始では、0 と 50 になるはずです。)
UPDATE
ステートメントでMySqlイベントを作成できます
CREATE EVENT ev_reset_weekly_scores
ON SCHEDULE EVERY 1 WEEK STARTS '2013-01-30 00:00:00' DO
UPDATE scores
SET Total_Score = Total_Score + Weekly_Score,
Weekly_Score = 0;
注:イベントの正しい開始日時を指定していることを確認してください。
SHOW PROCESSLIST
イベント スケジューラが有効になっているかどうかを確認するために使用します。オンの場合、ユーザー「event_scheduler」によるプロセス「Daemon」が表示されます。SET GLOBAL event_scheduler = ON;
現在有効になっていない場合に、スケジューラを有効にするために使用します。イベント スケジューラの構成の詳細については、こちらをご覧ください。
mysql
または、cron または Windows タスク スケジューラ (Windows を使用している場合) を使用して、CLIで update ステートメントを実行することもできます。