在MySQL中是否有任何对象不是float,但可以接受为float?

2024-04-20 06:39:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用一些实验结果构建一个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。我希望存储这些值的列的类型是float,但失败了,因为存在“N/A”

当然我可以使用Varchar,但是当我使用python检索一些值并想用它们绘制一个图形时,又出现了一个问题matplotlib.pyplot文件,它再次失败,因为无法将这些“N/A”字符串转换为float。你知道吗

请帮帮我。你知道吗

谢谢。你知道吗


Tags: 数据库图形类型mysql绘制原因floatvarchar
2条回答

使用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 |
+      -+

为什么你不能做NULL列?NULL没有任何值,所有编程语言都会优雅地处理它。你知道吗

相关问题 更多 >