我是php和mysql的新手很抱歉,如果这是一个愚蠢的问题,
我正在通过PhP My Admin将一些测量数据导入数据库。
CSV的值从1到3000,有些有小数,有些则没有。
由于这个原因,我觉得桌子不喜欢这种混合。
大多数值都正确显示,除了值超过999时,其中一个测量值显示999.99,值为1138.
有没有办法阻止它这样做?
感谢您的任何建议!
答案 0 :(得分:2)
那就是问题,数据类型。根据{{3}}:
DECIMAL列的声明语法是DECIMAL(M,D)。该 MySQL 5.6中参数的值范围如下:
M是最大位数(精度)。它的范围是1到65.(旧版本的MySQL允许范围为1到254.)
D是小数点右边的位数(刻度)。它的范围为0到30,且不得大于M.
因此,您的DECIMAL(5,2)
列类型可以包含最多999.99
的数字。您必须更改表格并使列更大。
(关于为什么MySQL更喜欢破坏你的数据而不是报告它,嗯,从早年开始就是它的哲学。你可以用the docs来解决这个问题。)