首页 > 解决方案 > 在数据库中加载本地文件时忽略某些信息?

问题描述

在数据库中加载本地文件时,有没有办法忽略某些信息?

示例:我有一个包含 2 列“PHONE”和“VALIDATED”的文件,其中“VALIDATED”列的状态为“YES”或“NO”。

表数据

因为我不需要否定案例,所以我想忽略它们以节省空间并缩短查询时间。

有什么办法让我只加载手机VALIDATED = YES吗?

数据库:MYSQL 6.3

导入:加载数据本地文件

标签: mysql

解决方案


Stack Overflow 用葡萄牙语交叉发布我的原始答案的翻译:

始终可以将所有数据加载到临时表中,然后仅将所需的行复制到目标表中。

假设一个表名为contacts

CREATE TEMPORARY TABLE contacts_temp LIKE contacts;
LOAD DATA LOCAL INFILE 'my_file' INTO TABLE contacts_temp;
INSERT INTO contacts (phones, validated, dt_imp)
SELECT phone, validated, dt_imp
  FROM contacts_temp 
 WHERE validated = 'YES';
-- drop statement is only useful if you are planning to keep the
-- current session open
DROP TEMPORARY TABLE contacts_temp;

推荐阅读