mysql decimal 类型的字段查询

Randy
  • 911

mysql 中例如下面的sql语句

select * from  table where money = '0.00' 
select * from  table where money = '0' 

理论上他俩应该是不一样的查询结果 , 但是现在他俩查询出的数据结果是一样的

mysql 不是抢类型匹配吗?
其中 money、 字段的类型是 decimal(10,2)
初步猜想是 。。。 mysql在查询的时候 把最终的值 转化为 decimal(10,2) 小数点2位
所以 0 和 0.00 他俩其实是一样的 ??
是这样吗??

回复
阅读 6.6k
2 个回答

自动转换,任何强类型的语言都是这样的。
C、C++、Java等语言中,(double)的0和(int)的0也是相等的啊。

这个叫字段的隐式转换,money是decimal(10,2)类型,你加个单引号搞什么,那是字串的写法,mysql会自动把这个字串转成decimal(10,2)格式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏