乘以百分比

时间:2018-04-05 13:14:50

标签: mysql sql

我的数据库中有一个表,包含2行,Level和Experience。

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)和插入。

3 个答案:

答案 0 :(得分:3)

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

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);

答案 1 :(得分:0)

假设你的表格的结构,这个问题不清楚,那么这样的话呢?

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

答案 2 :(得分:0)

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

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;