0

新しい cron ジョブを作成しようとしているのですが、作り方を説明するのがかなり難しく、作り方がわかりません。私はそれを説明するために最善を尽くします。

cron ジョブは、すべてのユーザーの参照ユーザー数を更新する必要があります。cron ジョブ (SQL クエリ) のタスクは、参照されたユーザーのレコード数を sql 行に設定することです。例えば:

ユーザー A はユーザー B を招待し、cron ジョブはユーザー A の参照カウントを 1 に設定し(ユーザー B を参照したため)、ユーザー A はユーザー C を招待するため、cron ジョブはユーザー A の行に +1 をカウントします。

その後、ユーザー B はユーザー D を招待することを決定したため、cronjob は彼のジョブを実行し、彼 (ユーザー B) の行に +1 を広告します。

基本的には、すべてのユーザーの参照ユーザーのレコード数を確認し、レコード数を行に追加することになります。(もちろん、すべてのユーザーに固有です)

十分に明確でない場合は、教えてください。

4

1 に答える 1

1

このようなものがうまくいくはずです。

UPDATE  users u

        JOIN 
        (SELECT referred_by, COUNT(*) referral_count FROM users GROUP BY referred_by) ref
        ON ref.referred_by = u.user_id

SET     u.referrals = ref.referral_count

WHERE   u.referrals <> ref.referral_count
;

referrals フィールドが null になる可能性がある場合は、WHERE 句を次のように変更します。

WHERE   IFNULL(u.referrals, 0) <> ref.referral_count
于 2013-01-10T17:56:16.087 に答える