mysql で次のようなクエリを作成する必要があります。
ユーザーが過去 30 日間サインインしていない場合は、クレジットの値を 0 に変更します。
私が試した:
update users set coins = 0 where online > date_sub(now(), interval 30 day);
しかし、これはすべてのユーザーに変更されました..何が問題なのですか?
mysql で次のようなクエリを作成する必要があります。
ユーザーが過去 30 日間サインインしていない場合は、クレジットの値を 0 に変更します。
私が試した:
update users set coins = 0 where online > date_sub(now(), interval 30 day);
しかし、これはすべてのユーザーに変更されました..何が問題なのですか?
UPDATE users SET coins = 0
WHERE online > date_sub(now(), interval 30 day);
online
過去 30 日間に (おそらく最後にログオンした)すべてのユーザーを更新します。あなたが望むのはおそらく;
UPDATE users SET coins = 0
WHERE online < date_sub(now(), interval 30 day);
...これは逆です。
どのユーザーが更新されるかを確認する簡単な方法は、同じ条件で選択を使用することです。これにより、結果が妥当であることを手動で確認できます。
SELECT * FROM users
WHERE online < date_sub(now(), interval 30 day);