0

我有一个 txt 文件,看起来像:

Col1, Col2, Col3
1, foo0, bar0
1, foo1, bar1
2, foo2, bar2
3, foo3, bar3

我想使用类似的查询将 txt 文件导入数据库:

LOAD DATA INFILE '/tmp/sample.txt'
INTO TABLE sample
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

但只想要 txt 文件中 Col1 值为 1 的记录,我只想在示例表中使用 Col1 和 Col2。如何使用 WHERE 子句创建查询以确定 Col1 的值为 1,然后仅将 txt 中的前两列放入示例表中?

4

1 回答 1

1

查看mysql加载数据infile语法

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]

似乎不支持 where 子句。之后您将不得不删除那些不需要的记录,或者进行某种形式的命令行过滤,然后将过滤后的数据加载到mysql中。

于 2013-08-15T13:27:04.240 回答