我正在尝试创建一个新的cron作业,但很难解释如何制作它,我无法弄清楚如何制作它。我会尽力解释它。
cron作业需要更新所有用户的引用用户数。 cron作业的任务(它是一个SQL查询)是将引用用户的记录数量设置为sql行。例如:
用户A邀请用户B,cron作业设置用户A他的引用计数为1 (因为他引用了用户B),用户A现在邀请用户C,因此cron作业计入+1进入< strong>他的(用户A)行。
之后,用户B决定邀请用户D,因此cronjob完成他的工作,并将广告+1加入他的(用户B)行。
它基本上归结为检查每个用户的引用用户的记录数,然后将记录数添加到一行中。 (当然,每个用户都是独一无二的)
如果不够清楚,请告诉我。
答案 0 :(得分: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