mysql - 将具有负值和小数的字符串转换为正确的类型

标签 mysql

什么是“正确”的转换方式

string(5) "-2,23"

我可以在 DECIMAL(5,2) Mysql 列中插入一个值?

我尝试过转换为 float、floatval 等...它们似乎都没有保留小数。

是因为逗号吗?我可以用“.”来str_replace它。如果需要但不愿意,我可能会遇到类似 "-1.200,23"

的值

最佳答案

是的,逗号错了。

你可以这样插入

CREATE TABLE `testdec` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `d` decimal(5,2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `testdec` (`id`, `d`)
VALUES
    (1, -2.23);

或者将逗号更改为点

INSERT INTO `testdec` (`id`, `d`)
VALUES
    (2, REPLACE("-2,23",",","."));

但是要小心。仅当字符串中没有其他点(如“1.000,12”)时,此方法才有效。

如果字符串中可以有点,请执行以下操作:首先删除点,然后将逗号更改为点

SELECT REPLACE( REPLACE("-456.123,23",".","") ,",",".") ;

关于mysql - 将具有负值和小数的字符串转换为正确的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973853/

相关文章:

mysql - MySQL 表可以有不同类型的分区吗?

php - Laravel 反向插入数据透视表查询

mysql - 不访问数据库的 Perl DBI

php - 拉拉维尔 : How to submit a registration using a bootstrap Modal?

php - 从我页面的第二个表中删除行的问题

php - 如何连接多个表并将结果返回给屏幕?

php - SQL 脚本在 phpmyAdmin 中有效,但在网站 echo 中无效

php - 当值更新时更改值

mysql - 将两列相乘并在第三列中产生结果

php - 使用 jquery 获取 php 表中元素的 .html() ,其中 mysql 行为 "echoed"- 仅获取第一个表中的元素