0

我正在尝试创建一个新的 cron 作业,但是很难解释如何制作它,而且我不知道如何制作它。我会尽力解释。

cron 作业需要更新所有用户的推荐用户数。cron 作业(它是一个 SQL 查询)的任务是将被推荐用户的记录数设置为一个 sql 行。例如:

用户 A 邀请用户 B,cron 作业将用户 A 的推荐计数设置为 1(因为他推荐了用户 B),用户 A 现在邀请用户 C,因此 cron 作业将 +1 计入他的(用户 A)行。

之后,用户 B 决定邀请用户 D,因此 cronjob 完成他的工作并将 +1 广告添加到他的(用户 B)行中。

它基本上归结为检查每个用户的推荐用户的记录数,然后将记录数添加到一行中。(当然,每个用户都是独一无二的)

如果不够清楚,请告诉我。

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
;

如果引用字段可能为空,则将 WHERE 子句更改为:

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