在 mysql 的单列中使用整数和小数
using Whole and Decimal numbers in a single column in mysql
我是一名音乐评论家,我想建立自己的网站。
我在 mysql 中建立了一个数据库,其中有一列用于收视率。
以下是可能性:10、9.5、9、8.5、8、7.5 ... 1、0.5 和 0
我可以使用什么样的colum,现在我选择DECIMAL,值为:3,1
问题是当我输入 9 时,它 returns 9.0 ... 有没有办法在一列中存储整数和小数?
将它们存储为小数但作为 100 的一部分。9.9 将是 99。然后使用 php 除以 10 并将其转换为双精度数。
您可以通过添加小数和 0 来转换为双倍。
成绩 / 10.0
您将值与表示混为一谈。如果您不对值进行算术运算(只是比较它们),那么您可以考虑将它们存储为字符串。
另外,选择它们以打印出来时,您可以按照自己的意愿格式化值:
select (case when rating % 1 = 0 then format(rating, 0)
else format(rating, 1)
end)
为了格式化数字以供显示,您可以使用解析 mysql 结果的任何语言进行这种处理。例如,在 PHP 中,您只需转换为浮动并打印出来。
$string = '9.0000000';
echo (float)$string;
这将打印“9”。
我是一名音乐评论家,我想建立自己的网站。 我在 mysql 中建立了一个数据库,其中有一列用于收视率。 以下是可能性:10、9.5、9、8.5、8、7.5 ... 1、0.5 和 0
我可以使用什么样的colum,现在我选择DECIMAL,值为:3,1
问题是当我输入 9 时,它 returns 9.0 ... 有没有办法在一列中存储整数和小数?
将它们存储为小数但作为 100 的一部分。9.9 将是 99。然后使用 php 除以 10 并将其转换为双精度数。 您可以通过添加小数和 0 来转换为双倍。
成绩 / 10.0
您将值与表示混为一谈。如果您不对值进行算术运算(只是比较它们),那么您可以考虑将它们存储为字符串。
另外,选择它们以打印出来时,您可以按照自己的意愿格式化值:
select (case when rating % 1 = 0 then format(rating, 0)
else format(rating, 1)
end)
为了格式化数字以供显示,您可以使用解析 mysql 结果的任何语言进行这种处理。例如,在 PHP 中,您只需转换为浮动并打印出来。
$string = '9.0000000';
echo (float)$string;
这将打印“9”。