国为mysql会发生隐式转换,如11abc会转成11。导致我们在查询,统计时,容易出错。


解决办法有两种,如果数据相对固定
则加这个条件 LENGTH(0+value)=LENGTH(value)
但这个也会把, 12.00 这样的数给过滤了。
所以在数据复杂的情况下
value 可能有:12.00,12.12,“11月”,“abc12”
则使用正则(value REGEXP '[^0-9.]') = 0

本文探讨了MySQL中常见的隐式类型转换问题,特别是当数字字符串被错误地转换为数值时,可能导致查询和统计错误。文章提供了两种解决方案,一种是在数据相对简单时使用LENGTH函数,另一种是在数据复杂时使用正则表达式来精确过滤非数字字符。
国为mysql会发生隐式转换,如11abc会转成11。导致我们在查询,统计时,容易出错。


解决办法有两种,如果数据相对固定
则加这个条件 LENGTH(0+value)=LENGTH(value)
但这个也会把, 12.00 这样的数给过滤了。
所以在数据复杂的情况下
value 可能有:12.00,12.12,“11月”,“abc12”
则使用正则(value REGEXP '[^0-9.]') = 0

1万+
7759

被折叠的 条评论
为什么被折叠?