加载数据并忽略制表符

问题描述

想要将制表符分隔的文件加载到单字段文本文件中,同时忽略而不删除制表符。我只能成功剥离选项卡(我使用了条形终止符,因为它不在我的数据中):

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 的建议后,我确​​实得到了标签。将条形字符放入效果很好。谢谢你让我理直气壮!