将数据从文本文件导入MySQL表时,文本文件中的转义符(\)有什么用?

当我们要在字段的值之间插入逗号或任何其他字符时,使用转义符(\)变得非常重要。借助示例可以理解。假设我们要将数据从名为A.txt的文本文件(其具有以下数据)导入到MySQL表中-

id,   Name,    Country,       Salary
105,  Chum,    Marsh,USA,     11000
106,  Danny,   Harrison,AUS,  12000

在这里,我们可以看到文件名具有两个值,名字,名字用逗号分隔。现在,以下查询将从上述文本文件“ A.txt”将数据导入“ employee4_tbl”-

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee4_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;
Records: 2 Deleted: 0 Skipped: 0 Warnings: 4

将数据从“ A.txt”导入表中时,我们会看到4条警告。以下查询将向我们显示表中已插入的内容-

mysql> Select * from employee4_tbl;
+------+---------+----------+--------+
| Id   | Name    | Country  | Salary |
+------+---------+----------+--------+
| 105  | Chum    | Marsh    |      0 |
| 106  | Danny   | Harrison |      0 |
+------+---------+----------+--------+
2 rows in set (0.00 sec)

上面的结果集表明,MySQL会将字段“名称”的值作为字段“国家”的值预测为“姓氏”。

通过将转义符放在文本文件中,可以消除上述问题,如下所示:

id,    Name,    Country,        Salary
105,   Chum\,   Marsh,USA,      11000
106,   Danny\,  Harrison,AUS,   12000

现在借助以下查询将该文本文件导入MySQL表:

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee5_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0

我们可以看到上面的查询中没有警告。现在,我们可以在以下查询的帮助下看到导入的内容:

mysql> Select * from employee5_tbl;
+------+----------------+----------+--------+
| Id   | Name           | Country  | Salary |
+------+----------------+----------+--------+
| 105  | Chum,Marsh     | USA      |  11000 |
| 106  | Danny,Harrison | AUS      |  12000 |
+------+----------------+----------+--------+
2 rows in set (0.00 sec)
猜你喜欢