MySQL 如何将带有一些行前缀的文本文件导入到MySQL表中?
假设我们在文本文件中有一个行前缀,那么使用“LINES STARTING BY”选项,我们可以忽略该前缀并将正确的数据导入到MySQL表中。以下示例说明它的作用。
阅读更多:MySQL 教程
例子
假设我们在文本文件中使用“VALUE”作为“LINE PREFIX”,如下所示-
id, Name, Country, Salary
VALUE:105, Chum*, Marsh,USA, 11000
106, Danny*, Harrison,AUS, 12000
现在,在将此文本文件导入到MySQL表中时,我们需要在查询中也提到“LINES STARTING BY”选项,如下所示-
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee8_tbl FIELDS TERMINATED BY ',' ESCAPED BY '*' LINES STARTING BY 'Value:' IGNORE 1 ROWS;
查询成功,1行受影响(0.07秒)
记录:1 已删除:0 已跳过:0 警告:0
现在,我们可以使用以下查询来查看已导入的内容:
mysql> Select * from employee8_tbl;
+------+----------------+----------+--------+
| Id | Name | Country | Salary |
+------+----------------+----------+--------+
| 105 | Chum,Marsh | USA | 11000 |
+------+----------------+----------+--------+
1行结果(0.00秒)
MySQL 仅在表中导入一条记录,因为我们在第一行之前使用了行前缀“VALUE:”,因此它会忽略没有行前缀的行。现在,假设我们在文本文件中添加另一行,行前缀为“VALUE:”,则MySQL也将上传此行-
id, Name, Country, Salary
Value:105, Chum*, Marsh,USA, 11000
106, Danny*,Harrison, AUS, 12000
Value:107, Raman*,Kumar, IND, 25000
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee8_tbl FIELDS TERMINATED BY ',' ESCAPED BY '*' LINES STARTING BY 'Value:' IGNORE 1 ROWS;
查询成功,2行受影响(0.07秒)
记录:1 已删除:0 已跳过:0 警告:0
现在,我们可以使用以下查询来查看已导入的内容:
mysql> Select * from employee8_tbl;
+------+----------------+----------+--------+
| Id | Name | Country | Salary |
+------+----------------+----------+--------+
| 105 | Chum,Marsh | USA | 11000 |
| 107 | Raman,Kumar | IND | 25000 |
+------+----------------+----------+--------+
2行结果(0.00秒)