我有一个名为"users"的表,它有4列,"id,username,point,bonus"所以,它看起来像下面:
+++++++++++++
+ users +
+++++++++++++
+ id +
+ username +
+ point +
+ bonus +
+++++++++++++
每1分价值0.25个奖励,所以如果用户有100分,他们得到25个奖励。我如何将它从列点转换为奖金?
我已经尝试使用PHP循环语法从db中选择所有用户数据,然后用简单的算术逻辑循环它。但是当我尝试使用1000个用户数据时,速度很慢。对存储过程有什么直接的了解吗?或者mysql语法来循环它?
你可以试试:
UPDATE users SET bonus = point*0.25
您可以创建一个触发器,根据"点数"自动更新"奖励"。不需要触发更新查询手动更改奖金。
可以如下所示使用:
CREATE TRIGGER "TRIGGERNAME"
instead of insert ON "users"
FOR EACH ROW
BEGIN atomic
DECLARE calc_bonus INTEGER;
if(NEW.point is not null) then
clac_bonus = 0.25 * NEW.point;
Insert into users (id,username,point,bonus) values (NEW.id,NEW.username,NEW.point,calc_bonus);
End if;
END;
我希望上面的解决方案对你有帮助:)