【发布时间】:2017-06-15 15:21:03
【问题描述】:
我已经查看了很多关于这个问题的问题,但我还没有找到解决方案。希望这不是一个重复的问题。
问题
如果我这样做:
INSERT INTO `Numbers`(`Number`) VALUES ('NaN')
INSERT INTO `Numbers`(`Number`) VALUES ('Inf')
INSERT INTO `Numbers`(`Number`) VALUES ('+Inf')
我在表格中插入了 0.0。有时我会得到:
Error Code: 1265. Data truncated for column 'Number'
我也尝试了不同的大小写和拼写,效果都一样。
我什至尝试过:
INSERT INTO `Numbers`(`Number`) VALUES ('1111111111111000000000000000000000000000000000000000000000000000')
如何在 MySql 表中插入 NaN 浮点数?
如果真的不可能,那么原因是什么? (可能是我使用的 MySql 版本不对?)
使用 NULL 作为 NaN
我实际使用它的表我不想在这些列中允许 NULL 值。所以我不喜欢在 ORM 层的某处用 NULL 替换 NaN 的想法
【问题讨论】:
-
您很可能不会收到错误消息,因为您的会话配置了旧版 SQL_MODE。而且,抱歉,您只能存储有限的数字。
-
好的。你知道为什么会这样吗?我假设 MySql 团队并没有忘记它。他们一定是出于某种原因做出了选择?
-
引用Raymond Chen:“为什么不存在此功能?”的答案通常是“默认情况下功能不存在。必须有人实施它们。”并不是你能想到的每一个特性都是从你的大脑中经过全面测试和实现的,然后某个地方的一些 PM 提交了一个错误来删除你的特性。功能一开始是不存在的,必须有人来实现它们。
标签: mysql nan ieee-754 infinity