Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
MySQL-如何更新十进制列以允许在点之后有更多的数字_Mysql - Fatal编程技术网

MySQL-如何更新十进制列以允许在点之后有更多的数字

MySQL-如何更新十进制列以允许在点之后有更多的数字,mysql,Mysql,我在MySQL表中有一个decimal(20,2)列: no ----- 10.01 10.09 10.10 10.11 10.19 10.99 将十进制值更新为最简单的方法是什么 no ------- 10.001 10.009 10.010 10.011 10.099 .. 10.100 10.101 如果我只将列更改为十进制(20,3),我有10.010、10.020。。。10.990应该有效的: UPDATE TableName SET no = no DIV 1 + MOD(n

我在MySQL表中有一个
decimal(20,2)
列:

no  
-----
10.01
10.09
10.10
10.11
10.19
10.99
将十进制值更新为最简单的方法是什么

no
-------
10.001
10.009
10.010
10.011
10.099
..
10.100
10.101
如果我只将列更改为十进制(20,3),我有10.010、10.020。。。10.990应该有效的:

UPDATE TableName
SET no = no DIV 1 + MOD(no, 1) / 10
以下两个功能执行以下操作:

no DIV 1 => 10.019 DIV 1 = 10
MOD(no, 1) => MOD(10.019, 1) = 0.019
这应该是可行的:

UPDATE TableName
SET no = no DIV 1 + MOD(no, 1) / 10
以下两个功能执行以下操作:

no DIV 1 => 10.019 DIV 1 = 10
MOD(no, 1) => MOD(10.019, 1) = 0.019

您想要什么请解释一下?更改字段类型本身不应该更改值,mysql的行为也应该如此。您必须手动更新这些值以实现所需。请检查下面我的答案。它解决了你的问题吗?你想要什么请解释一下?改变字段类型本身不应该改变值,mysql的行为也应该如此。您必须手动更新这些值以实现所需。请检查下面我的答案。它解决了您的问题吗?在将类型更改为decimal(20,3)并运行
UPDATE TableName SET no=no DIV…
后,可能需要一个临时列来保存此值(
decimal(20,3)
)“重复条目'509.010'。更改格式后和运行前更新的COLLMN数据:
509.010 509.020 509.030 509.040 509.050 509.060 509.070 509.080 509.090 509.100 509.110 509.120
您根本没有提到这个数字必须是唯一的!在将类型更改为十进制(20,3)并运行
updatetablename SET no=no DIV…
后,可能需要一个临时列来保存此值(
decimal(20,3)
)“重复条目'509.010'。更改格式后和运行前更新的COLLMN数据:
509.010 509.020 509.030 509.040 509.050 509.060 509.070 509.080 509.090 509.100 509.110 509.120
您根本没有提到这个数字必须是唯一的!