问题描述
想要将制表符分隔的文件加载到单字段文本文件中,同时忽略而不删除制表符。我只能成功剥离选项卡(我使用了条形终止符,因为它不在我的数据中):
LOAD DATA LOCAL
INFILE 'c:\\test\\test.txt'
INTO TABLE text_rows
CHaraCTER SET latin1
FIELDS TERMINATED BY '|'
LInes TERMINATED BY '\n'
这会加载
"PROGRAM_NAME PROGRAM_URL CATALOG_NAME "
作为
"PROGRAM_NAMEPROGRAM_URLCATALOG_NAME"
但是这个:
FIELDS TERMINATED BY ''
仅加载:“PROGRAM_NAME”
解决方法
mysql> CREATE TABLE test (txt TEXT);
Query OK,0 rows affected (0.35 sec)
mysql> LOAD DATA
-> INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\test.txt'
-> INTO TABLE test
-> FIELDS TERMINATED BY '|'
-> LINES TERMINATED BY '\r\n';
Query OK,2 rows affected (0.09 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT REPLACE(txt,'\t','\\t') FROM test;
+----------------------------------------------+
| REPLACE(txt,'\\t') |
+----------------------------------------------+
| PROGRAM_NAME\tPROGRAM_URL\tCATALOG_NAME\t |
| PROGRAM_NAME2\tPROGRAM_URL2\tCATALOG_NAME2\t |
+----------------------------------------------+
2 rows in set (0.00 sec)
,
谢谢你的帮助 - 我刚刚意识到我很愚蠢,在 Navicat 中查看表格似乎选项卡没有通过,但是尝试了几次不成功的配置,我认为它在没有验证的情况下失败了适当地。永远不要假设!
再看,在看到 Akina 的建议后,我确实得到了标签。将条形字符放入效果很好。谢谢你让我理直气壮!