当我们要在字段的值之间插入逗号或任何其他字符时,使用转义符(\)变得非常重要。借助示例可以理解。假设我们要将数据从名为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)