MySQL字段由制表符终止

时间:2010-04-06 00:34:03

标签: mysql load-data-infile

我正在尝试使用MySQL上传制表符分隔文件。我想要一个类似这样的查询:LOAD DATA LOCAL INFILE 'file' INTO TABLE tbl FIELDS TERMINATED BY 'TAB'我可以用TAB替代TAB来实现这项工作吗?

3 个答案:

答案 0 :(得分:11)

你试过'\ t'转义序列+“T”被认为是标签...没试过,但可能是你需要的

答案 1 :(得分:1)

我自己试图找到这个问题的答案,以保存重新保存我的文件,用逗号分隔而不是标签...

从一个旧的MySQL参考手册,在页面的下方,您可以发现 TAB是使用MySQL上的LOAD DATA加载的文件的默认分隔符

请参阅:http://dev.mysql.com/doc/refman/4.1/en/load-data.html

我刚刚以这种方式将CSV文件加载到MySQL5.1中。

BW

答案 2 :(得分:0)

  

以'\ t'终止的字段

尝试这个

注意:

场和线处理

对于LOAD DATA和SELECT ... INTO OUTFILE语句,FIELDS和LINES子句的语法相同。这两个子句都是可选的,但如果都指定了FIELDS,则必须在LINES之前。

如果指定FIELDS子句,则其每个子句(TERMINATED BY,[OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的,但必须至少指定其中一个。这些子句的参数只能包含ASCII字符。

如果未指定FIELDS或LINES子句,则默认值与编写此代码的默认值相同:

  

以'\ t'结尾的字段,以'''\\'结束的      

以'\ n'开头的行以

反斜杠是SQL语句中字符串中的MySQL转义字符。因此,要指定文字反斜杠,必须将两个反斜杠指定为将值解释为单个反斜杠。转义序列'\ t'和'\ n'分别指定制表符和换行符。

换句话说,默认值导致读取输入时LOAD DATA的行为如下:

在换行符处查找行边界。

请勿跳过任何行前缀。

在选项卡的字段中将行中断。

不要期望将字段包含在任何引号中。

将转义字符\后面的字符解释为转义序列。例如,\ t,\ n和\分别表示制表符,换行符和反斜杠。有关转义序列的完整列表,请参见稍后对FIELDS ESCAPED BY的讨论。

相反,默认值会导致SELECT ... INTO OUTFILE在写入输出时表现如下:

在字段之间写入标签。

请勿将任何引号内的字段引起来。

使用\可以对出现在字段值中的制表符,换行符或\进行转义。

在行尾写换行符。

请参阅:https://dev.mysql.com/doc/refman/8.0/en/load-data.html

了解更多详情。