如何将x%添加到一个值并将其插入MySQL表中?

时间:2014-01-07 16:29:14

标签: mysql sql insert

嘿,大家好我想知道是否有一个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.谢谢!

2 个答案:

答案 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();