在将数据从文件插入表时,如何用 NULL 替换 NA 值?
Posted
技术标签:
【中文标题】在将数据从文件插入表时,如何用 NULL 替换 NA 值?【英文标题】:How can you replace NA values with NULL while inserting data from a file to a table? 【发布时间】:2021-10-23 08:15:18 【问题描述】:我正在尝试将 csv 文件中的数据导入数据库中的现有表中。它似乎工作正常,除了 mysql 不接受 NA 作为由 int 表示的列的值。因此,我想在导入文件时将 NA 的值更改为 NULL。另外,我想终止使用 NA 作为主键的表中的一行。 如果值已经在数据库表中,这一切都很容易更改,但是由于此错误,这些值没有被添加。为了记录,我使用 MAMP。
下面是我目前使用的代码:
LOAD DATA LOCAL INFILE 'filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 ROWS
【问题讨论】:
【参考方案1】:由于我们对您的表或 csv 一无所知,假设您有 4 列,并且您想将 columns2 NA 替换为 NULL
LOAD DATA LOCAL INFILE 'filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 ROWS
(column1, @int, column3, column4)
SET column2 = IF(@int = 'NA',NULL,@int);
【讨论】:
以上是关于在将数据从文件插入表时,如何用 NULL 替换 NA 值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在将数据从 csv 复制到 sql 表时在目标表中插入 CurrentUserId 和 TenantId 字段