加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在MySQL中编辑不同的数字值?

发布时间:2020-12-13 22:31:59 所属栏目:PHP教程 来源:网络整理
导读:我在我的数据库中存储了某种用户操作X.如果用户执行另一个操作Y,则字段’New_actions’计数为1.因此,例如: User does action X at 19:07User does action Y at 19:08User does action Y at 19:08User does action X at 19:10User does action Y at 19:12 现
我在我的数据库中存储了某种用户操作X.如果用户执行另一个操作Y,则字段’New_actions’计数为1.因此,例如:

User does action X at 19:07
User does action Y at 19:08
User does action Y at 19:08
User does action X at 19:10
User does action Y at 19:12

现在我在我的数据库中有下一个值:

X_actions --- Time --- New_actions
Name1 - 19:07 - 3
Name2 - 19:10 - 1

这意味着动作Y在Name1之后完成两次,在Name2之后完成一次.我希望你能理解我.但我有一个问题.每小时应删除2个动作.第一次它应该不是问题:Name1中的’New_actions’字段应编辑为1,但是如何创建第二次将Name1编辑为0的脚本,以及Name2呢?

解决方法

SET @remove := 2;

UPDATE my_table
SET New_actions =
   IF( New_actions >= @remove,(@remove := 0)  + New_actions - @remove,IF(@remove := @remove - New_actions,0) )
WHERE New_actions <> 0
ORDER BY my_table.Time;

使用INT Time列来简化操作,这是执行上面三次块的结果:

+------+-------------+
| Time | New_actions |
+------+-------------+
|    1 |           3 |
|    2 |           3 |
|    3 |           3 |
+------+-------------+
+------+-------------+
|    1 |           1 |
|    2 |           3 |
|    3 |           3 |
+------+-------------+
+------+-------------+
|    1 |           0 |
|    2 |           2 |
|    3 |           3 |
+------+-------------+
+------+-------------+
|    1 |           0 |
|    2 |           0 |
|    3 |           3 |
+------+-------------+

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读