Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加结束零';s到mysql表列_Php_Mysql_Sql - Fatal编程技术网

Php 添加结束零';s到mysql表列

Php 添加结束零';s到mysql表列,php,mysql,sql,Php,Mysql,Sql,我有一个名为“Amount”的MySQL表,它有200、300、100等数量。 但是,我想要的是,金额应该是200.00,300.00100.00。如何编写一个查询来更新列,以便添加结尾的零?该列是浮动的 我尝试使用常规更新查询,但失败了,我不得不恢复更改(重新上传备份sql文件) 欢迎您提供任何建议。MySQL中的数字列(可能还有大多数db引擎)实际上不会这样保存数字,而是二进制的。如果你感兴趣的话,可能是这样的 有一种数据类型可以按字面意思保存数字:DECIMAL。如果将5.2保存为DECI

我有一个名为“Amount”的MySQL表,它有200、300、100等数量。 但是,我想要的是,金额应该是200.00,300.00100.00。如何编写一个查询来更新列,以便添加结尾的零?该列是浮动的

我尝试使用常规更新查询,但失败了,我不得不恢复更改(重新上传备份sql文件)

欢迎您提供任何建议。

MySQL中的数字列(可能还有大多数db引擎)实际上不会这样保存数字,而是二进制的。如果你感兴趣的话,可能是这样的

有一种数据类型可以按字面意思保存数字:
DECIMAL
。如果将
5.2
保存为
DECIMAL(2,4)
,则会将数字保存为
5.2000
。小数保存为字符串,仅在保存到数据库时“转换”为数字

您可以尝试将列更改为十进制(n,2),但这取决于MySQL的智能程度,无法正确更新值:

ALTER TABLE your_table
  MODIFY your_column DECIMAL(5, 2) NOT NULL DEFAULT 0 -- etc
示例:

我认为你最好的解决办法是更新你的专栏

差不多
ALTER TABLE
Amount
MODIFY
Amount
浮动(7,2)非空默认值0

金额的数据类型是什么?如果它不是数字数据类型,那么比结束0有更大的问题。如果是,请将其切换为
十进制
,类似于
十进制(10,2)
。让我们看看您的表定义和尝试使用的查询。您是否可能试图将数据类型从
INT
更改为
DECIMAL(11,2)
或类似的东西?@GordonLinoff它是浮点型的。@user3605847。呸。使用
format()
或转换为十进制。如何制作自动检查数据库中输入的所有值应为零的东西?(如果该值没有小数点)它也不起作用。表示:-0行受影响。(查询花费了0.0005秒)发送表schemafor大部分我同意,但为什么不保留浮点值类型?请看我的答案。它已经是一个
浮点数
。。。。一个
浮点数
不能保持0位小数
DECIMAL
Docimal.Rudi我也这么认为,但是查看文档并亲自尝试,float确实允许精度,所以float(7,2)在这种情况下可以工作。
update Amount set floati = concat(floati,'.00');