MySQL逗号到小数点查询

时间:2014-01-17 16:03:56

标签: mysql

我将我的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;

我需要更新的列是双类型的。 感谢。

1 个答案:

答案 0 :(得分:2)

SELECT REPLACE(CAST(your_double AS CHAR), ',', '.')

这将选择将逗号替换为点,您可以将其用于更新查询

更新版本将是

    UPDATE your_table 
SET your_double=CAST(REPLACE(CAST(your_double AS CHAR), ',', '.') AS DOUBLE)