mysql - 错误代码: 1292 - Truncated Incorrect DOUBLE value: '-'

标签 mysql sql mysql-error-1292

SET @newNum = IF(
    RIGHT("-600.00",1) REGEXP '^[-]' = '-',
    REPLACE("-600.00",",",""),
    -1*REPLACE(REPLACE("-600.00",",",""),"-","")
);

执行此行时,我不断收到截断的不正确的 DOUBLE 值:“-”,有人知道是什么原因造成的吗?

最佳答案

REGEXP 根据是否存在匹配返回 1 或 0。将结果与 - 进行比较是不正确的,您可以这样做:

DECLARE @oldNum VARCHAR(10);
DECLARE @newNum VARCHAR(10);
SET @oldNum = '600.00-';
SET @newNum = IF(
    RIGHT(@oldNum, 1) = '-',
    CONCAT('-', REPLACE(REPLACE(@oldNum, ',', ''), '-', '')),
                        REPLACE(@oldNum, ',', '')
);
SELECT @oldNum, @newNum

关于mysql - 错误代码: 1292 - Truncated Incorrect DOUBLE value: '-' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29008798/

相关文章:

mysql - 日期时间不正确。我做错了什么?

php - 错误 : Column count doesn't match value count at row 1

php - 对象集合

sql - 实现向数据库角色授予对数据库中所有用户表的权限的 SQL 脚本的最佳方法是什么?

MySQL ROUND() 计算错误

mysql - MySQL 5.7 中截断了不正确的 DECIMAL 值

mysql - SQL查询: Need to output two columns with values based on conditional data

mysql - MYSQL创建触发器语法错误

Mysql:将 NOT NULL 列更新为 null 时未收到错误

MySQL 1292 日期时间值不正确