嘿,大家好我想知道是否有一个SQL查询可以在添加x%之后插入一个值吗?
例如:
INSERT INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`) VALUES (1, 70, 4444, 0);
是我目前的查询。是否有可能立即添加以下内容:
INSERT INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`) VALUES (1, 71, 4666, 0);
BaseHP' 4666' = 4444 + 5% - 这将非常有用,我需要它,直到等级为255.谢谢!
答案 0 :(得分:2)
假设您有一个包含所有可能级别的表(转到255):
INSERT INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`)
select 1, l.level, 4444 * pow(1.05, l.level - 70), 0
from levels l
where l.level >= 70 and l.level <= 255;
如果您没有单独的表和,那么您在所有级别的原始数据中都有示例,那么您可以这样做:
INSERT INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`)
select 1, l.level, 4444 * pow(1.05, l.level - 70), 0
from (select distinct level from player_classlevelstats) l
where l.level >= 70 and l.level <= 255;
答案 1 :(得分:1)
如果可以使用存储过程,请尝试:
delimiter //
CREATE PROCEDURE my_proc()
BEGIN
SELECT 4444 INTO @v2;
SELECT 70 INTO @v1;
WHILE @v1 <= 255 DO
INSERT INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`)
VALUES (1, @v1, @v2, 0);
SELECT ROUND(@v2 * 1.05) INTO @v2;
SET @v1 = @v1 +1;
END WHILE;
END;
//
call my_proc();