gpt4 book ai didi

php - 如何确定容量达到最大容量的次数

转载 作者:行者123 更新时间:2023-11-29 12:43:12 25 4
gpt4 key购买 nike

示例mysql表名为“Profile”的数据如下

----------------------
user_id | max_capacity
----------------------
100 3
101 5
103 10

另一个名为“Active”的 mysql 表数据如下

-------------------------
user_id | active_capacity
-------------------------
101 7
103 5

请注意表“Active”列 - active_capacity 是动态的,其值每秒都会由另一个脚本更改。

我想确定我的 user_id #101 是否已命中/超过其允许的 max_capacityactive_capacity,即 5 在“配置文件”表中。请注意“Active”表显示 user_id #101active_capacity 现在为 7

如果我的 user_id #101 首先命中/超过其 max_capacity,我想定义最大命中值,例如 $hit=2然后我想将其值存储到另一个名为“Danger”的表中

存储 user_id #101 因为它的 active_capacity 现在是 7,超过了它的 max_capacity

mysql表“Danger”数据如下

--------------
user_id | hits
--------------
101 1

5分钟后,mysql表“Active”中的user_id #101active_capacity减少到4

又过5分钟后,mysql表“Active”中的user_id #101active_capacity增加到10,所以在这里我想更新“危险”表 user_id #101点击 为“2”

请注意:我想仅在“事件表”中的 active_capacity 减少并再次减少其 active_capacity 后更新“危险”表列 hits 值增加并达到/超过“配置文件”表中的 max_capacity

该脚本将在 cron 作业中运行。我需要建议,实现上述目标最有效的方法是什么。

谢谢。

最佳答案

您可以使用 MySQL 的重复键更新功能将其作为一条语句来完成。这假设 user_id 是 Danger 表上的主键。 SQL 还假设 user_id 在其他两个表上是唯一的:

insert into Danger (
user_id, hits
) select
p.user_id, 1
from
Profile p
inner join
Active a
on a.user_id = p.user_id
where
a.active_capaciy > p.max_capacity
on duplicate key update set
hits = hits + 1;

Example SQLFiddle

关于php - 如何确定容量达到最大容量的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com