我将我的C#系统安装到带有Win XP的计算机中,十进制分隔符的数字格式是逗号而不是小数点,但这会干扰MySQL更新,因为当我将信息加载到我的C#系统时,格式是“0,11”,系统将逗号视为MySQL查询的一部分。这是一个问题,因为每次我想更新寄存器时,我都必须手动更改小数点的逗号,否则会引发异常。
有没有办法在特定列的数据库中更改小数点的所有逗号?尽管我已经更改了区域配置,但数据库会将逗号保留在以前注册的项目中。
我的表结构:
CREATE TABLE `inventario` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cla` varchar(100) NOT NULL,
`des` varchar(500) NOT NULL,
`lin` varchar(3) NOT NULL,
`cal` varchar(20) NOT NULL,
`uen` varchar(20) NOT NULL,
`can` double NOT NULL,
`fei` varchar(10) NOT NULL,
`fec` varchar(10) NOT NULL,
`obs` varchar(500) NOT NULL,
`ppu` double NOT NULL,
`pl1` double NOT NULL,
`pl2` double NOT NULL,
`pl3` double NOT NULL,
`pl4` double NOT NULL,
`prm` double NOT NULL,
`pr1` varchar(50) NOT NULL,
`pr2` varchar(50) NOT NULL,
`mnm` double NOT NULL,
`max` double NOT NULL,
`dias` int(10) NOT NULL DEFAULT '1',
`categoria` varchar(50) NOT NULL,
PRIMARY KEY (`id`,`cla`),
UNIQUE KEY `constr_cla` (`cla`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
我需要更新的列是双类型的。 感谢。
答案 0 :(得分:2)
SELECT REPLACE(CAST(your_double AS CHAR), ',', '.')
这将选择将逗号替换为点,您可以将其用于更新查询
更新版本将是
UPDATE your_table
SET your_double=CAST(REPLACE(CAST(your_double AS CHAR), ',', '.') AS DOUBLE)