我正在使用一些实验结果构建一个Mysql数据库。通常,我想写入表中的值是float,但有时它们不是。就像:
exp1 exp2 exp3 exp4
gene1 0 1.2 1.3 N/A
gene2 2.2 2.0 3.3 1.9
gene3 N/A 5.5 5.2 6.9
由于某些原因,实验的值不可用,并且不是0.我希望存储这些值的列的类型是浮点数,但它失败了,因为存在'N / A'。
当然我可以使用Varchar但是当我使用python检索一些值并想要使用matplotlib.pyplot绘制图形时,又出现了一个问题,它再次失败,因为这些'N / A'字符串不能被转换为浮动。
请帮帮我。
感谢。
答案 0 :(得分:2)
为什么你不能列NULL
列? NULL
没有任何价值,所有编程语言都会优雅地处理它。
答案 1 :(得分:0)
使用select
进行检索时,您可以对列应用cast
以返回数值。
mysql> select cast( 'n/a' as decimal ) na_to_num;
+-----------+
| na_to_num |
+-----------+
| 0 |
+-----------+
其他替代方法是在值不可用时插入NULL
。但是您无法将NULL
转换为数值。您需要明确检查NULL
并在其上返回0
。
mysql> select cast( ifnull(null,0) as decimal ) as null_to_num;
+-------------+
| null_to_num |
+-------------+
| 0 |
+-------------+