我正在尝试将包含十进制数字的表字段从 varchar(255) 更改为 decimal(12,2)。在我这样做之前,我想知道在这个过程中是否有信息会被删除:是否有任何行中该字段包含小数(12,2)以外的内容。
我很难过如何做到这一点。显然 PHP 中没有像 is_numeric() 这样的字符串函数。我已经尝试将该字段转换为十进制,然后将其与原始字符串进行比较,但即使对于明显不应该的情况,这也会返回 TRUE:
select ('abc' = convert('abc', decimal(12,2)));
返回 1
有什么帮助吗?如何在 MySQL 中找出字符串是否包含小数以外的内容?谢谢。