我试图在 MySQL 数据库中存储一个百分比值,但每当我尝试将百分比列的值设置为 100% 时,我都会收到“超出范围值”错误消息。
我目前使用的是 DECIMAL(5,2) 类型,我需要能够存储从 0% 到 100% 的值(当值不是整数时使用 2dp)(这些值是在一个 PHP 脚本)。
除了触发错误的 100% 之外,所有值都很好。
我是不是误会了什么,还是遗漏了什么?
编辑:该表是使用以下 sql 创建的
CREATE TABLE overviewtemplate
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(32),
numberOfTests INT NOT NULL DEFAULT 0,
description VARCHAR(255) NOT NULL DEFAULT "Please add a Description",
percentageComplete DECIMAL(5,2),
numberPassed INT NOT NULL DEFAULT 0,
numberFailed INT NOT NULL DEFAULT 0
) ENGINE=MYISAM;
编辑 2:这是 SQL 查询的代码
$numberOfPasses = 5;
$numberOfFails = 5;
$percentageComplete = 100.00;
$sqlquery = "UPDATE `overviewtemplate`
SET numberPassed = {$numberOfPasses},
numberFailed = {$numberOfFails},
percentageComplete = {$percentageComplete}
WHERE description = '{$description}'";
编辑 3:已修复 - 我的表名中存在语法错误,这意味着它正在尝试更新错误的表。
请您参考如下方法:
根据您的声明,您应该能够毫无困难地节省 999.99。检查是否设置了不大于100的规则?如果是则将其设置为小于或等于 100.00
它可能在触发器中。