如何在更新列后更新另一行的列

正如标题所说,我想在更新特定列后自动更新另一行的列。


我有这张桌子


id username direct_referral indirect_referral total_referral  referrer_id  paid

---------------------------------------------------------------------------------

1    aj         100               56              156          1           1

2    john       100               40              140          1           1

3    michael    100               0               100          2           1

现在在这个表中refferer_id= referrer 的 id。例如,aj 引用了“john”,因此他获得了total_referraljohn 的 40%,即 (140*40/100 = 56)。约翰推荐了迈克尔,所以他indirect_referral将是迈克尔的 40%,即 (100*40/100 = 40)。


现在我想在新用户通过他的推荐 ID 和付费 = 1 加入时自动将indirect_referral推荐人增加 40% 。total_referral


请告诉我如何自动执行此过程并提前致谢。


眼眸繁星
浏览 68回答 1
1回答

梵蒂冈之花

你的问题很棘手。但它可能可以通过递归 SQL 语句解决,也称为 CTE(公用表表达式)。您有一个初始查询作为锚点成员(您要插入的行)和一个一次又一次调用自身的递归查询。查看该链接以获得更深入的解释:https ://www.mysqltutorial.org/mysql-recursive-cte/解决问题的另一种方法是进行大量由 PHP 代码管理的 SQL 查询。
打开App,查看更多内容
随时随地看视频慕课网APP