MySQL中INT列的可能取值及是否存在类Pandas的NaN值
MySQL INT列的缺失值处理说明
MySQL的INT类型不存在类似Pandas中的NaN值,它的合法存储内容只有两类:
- 符合对应INT子类型范围的整数(比如普通
INT的范围是-2147483648到2147483647,TINYINT是-128到127等) - NULL值,这是MySQL里用来表示缺失、未知数据的标准方式,对应你场景里Pandas NaN的作用
补充说明:
- NaN是IEEE 754浮点类型的特殊标记值,属于浮点数据范畴,而INT是纯整数类型,MySQL的整数类型体系不支持这类浮点特有值。
- 在ETL流程中,如果源数据(比如Pandas DataFrame)里有NaN值,写入MySQL INT列时需要做转换:
- 若目标INT列允许为NULL,直接把NaN转成NULL写入即可
- 若列设置为NOT NULL,需要提前和业务方约定一个业务上不会用到的特殊整数(比如-9999)作为缺失标记,但这种方式不如NULL规范,后续查询过滤时需要额外处理
内容的提问来源于stack exchange,提问作者user21068378
相关产品推荐
相关产品推荐

