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

mysqlmysqli database更新于 2025/5/18 14:36:17

当我们想在字段的值之间插入逗号或任何其他字符时,转义字符 (\) 的使用将变得非常重要。可以借助示例来理解。假设我们想将包含以下数据的文本文件 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;
Query OK, 2 rows affected, 4 warnings (0.05 sec)
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 将字段"name"的值"lastname"预测为字段"Country"的值。

可以通过在文本文件中放置转义字符来解决上述问题,如下所示 −

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;
Query OK, 2 rows affected (0.03 sec)
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)

相关文章


有用资源