在mysql中声明空值

sg3maiej  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(324)

这个问题在这里已经有答案了

mysql从csv数据加载空值(7个答案)
两年前关门了。
我想使用 LOAD DATA INFILE 科曼德。我以前创建过一个带有attribute(column)float的表,如:

CREATE TABLE table_1 (
    foo INT );

所以现在我可以用 LOAD DATA INFILE 科曼德。在我要加载的文件中,缺少的值被编码为“na”。当我运行此命令时,“na”值被转换为“0”,而不是空值,这是mysql标准的缺失值。
我的问题是:如何向mysql声明“nas”缺少值。
如果这是一个当前的主题,那么我将对此进行解释,但由于我不是sqlMaven,所以我无法找到这个问题的答案。
提前谢谢,
马克

a64a0gku

a64a0gku1#

类似于

LOAD DATA INFILE 'path/to/file.csv'
INTO TABLE table_1
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' 
IGNORE 1 LINES 
(@foo)
SET foo = NULLIF(@foo, 'NA')

把文件给我 path/to/file.csv 有以下内容

foo
1
2
3
NA
4
NA
NA

下面是加载数据后在表中看到的内容

mysql> select * from table_1;
+------+
| foo  |
+------+
|    1 |
|    2 |
|    3 |
| NULL |
|    4 |
| NULL |
| NULL |
+------+
7 rows in set (0.00 sec)

相关问题