mysql - 在 MySQL 中存储百分比

标签 mysql

我试图在 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

它可能在触发器中。

关于mysql - 在 MySQL 中存储百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27482629/

相关文章:

mysql - 如何在Mysql中检索匹配和不匹配的记录?

MySQL:为每个日期选择不同的名称?

mysql - 'H' 中的未知列 'where clause'

java - JDBC 表创建捕获没有按照我的预期出错

mysql - 如何在 MySQL 中强制存储具有特定格式的数字(必须以除 0 以外的任何单个整数开头并且恰好是特定长度)?

java - Spring data - 修改查询并发

mysql - 更改引用表上的主键

MySQL Workbench - 如何诊断查询失败问题

php - 在构建 MySql INSERT 中使用 PHP 变量

mysql - 替换随机单词