Mysql 乘以百分比

Mysql 乘以百分比,mysql,sql,Mysql,Sql,我的数据库中有一个表,包含两行、级别和经验 CREATE TABLE `player_xp_for_level` ( `Level` TINYINT(3) UNSIGNED NOT NULL, `Experience` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`Level`) ) COLLATE='utf8_general_ci' ENGINE=MyISAM ; 通过预定义的索引填写了80级以下的体验等级。 然而,我希望81

我的数据库中有一个表,包含两行、级别和经验

CREATE TABLE `player_xp_for_level` (

    `Level` TINYINT(3) UNSIGNED NOT NULL,
    `Experience` INT(10) UNSIGNED NOT NULL,
    PRIMARY KEY (`Level`)
)

COLLATE='utf8_general_ci'

ENGINE=MyISAM
;
通过预定义的索引填写了80级以下的体验等级。 然而,我希望81级的统计数据是基于80级的经验,只是乘以*1.0115

基本上,我在寻找一个每次插入一行的查询。 检查以前的经验,然后修改并插入它。
工作流::检查上一行,更新值(以前的经验*1.0115)并插入。

假设您的表的结构,这在问题中不清楚,那么类似这样的事情

UPDATE
    player_xp_for_level
SET
    xp = xp * 1.0115
WHERE
    player_level BETWEEN 80 AND 255;

根据您提供的最低代码,我认为这是您想要的:

UPDATE player_xp_for_level
SET name_of_value_column = name_of_value_column * 1.0115
WHERE name_of_level_column BETWEEN 80 AND 255;

如果只想显示更高的分数而不影响数据库中的数据。您可以在
SELECT
语句中使用
CASE
表达式:

SELECT player, lvl,
    CASE 
        WHEN lvl BETWEEN 80 AND 255 THEN score * 1.0115 
        ELSE score 
    END as score
FROM player_xp_for_level
由于您发布了其他信息,我已使用
INSERT
语句更新了我的答案。您还可以在下面使用
CASE
表达式:

INSERT INTO player_xp_for_level (lvl, score) 
                        VALUES (@lvl, CASE WHEN @lvl BETWEEN 80 AND 255 THEN @score * 1.0115 ELSE @score END);

如何创建insert语句?或者这就是问题所在?是否要更新现有数据或使用Select返回增加的值<代码>列*1.0115?答案是:是的,你可以让我调整我的问题,