我试图将包含十进制数的表字段从varchar(255)更改为decimal(12,2)。在我这样做之前,我想知道是否有信息会在这个过程中被删除:这个字段是否包含除十进制(12,2)之外的其他行。
我不知道怎么做。显然,PHP中没有类似is_numeric()的字符串函数。我已经尝试将字段强制转换为decimal,然后将其与原始字符串进行比较,但即使在明显不应该这样做的情况下,也会返回TRUE:
select ('abc' = convert('abc', decimal(12,2)));
返回1
有什么帮助吗?如何确定MySQL中的字符串是否包含十进制以外的内容?谢谢。
最佳答案
我真蠢,我得投两次(小数点后再回到char),这就成功了:
select('abc'=convert(convert('abc',decimal(12,2)),char(255));
返回0
谢谢。
关于mysql - 如何获得MySQL中变量的类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19951815/