【问题标题】:Export datatable from MySQL to Text file without the delimiter将数据表从 MySQL 导出到没有分隔符的文本文件
【发布时间】:2019-10-02 09:36:06
【问题描述】:

我想从数据表中导出数据。数据已成功导出,但问题是我无法删除字段的分隔符。这是我的代码的样子:

SELECT * FROM datatable 
INTO OUTFILE 'D:/try.txt' 
FIELDS TERMINATED BY '' 
ENCLOSED BY '' 
LINES TERMINATED BY '\n'

这是数据表的列列表:

我已经删除了终止的字段,但数据仍由制表符分隔。我应该怎么办?请帮帮我。谢谢!

【问题讨论】:

  • 为什么要删除分隔符?
  • 公司标准我们有自己的分隔符,表格中的字段有最大长度和位置
  • 指明要导出的列的数据类型。请参阅13.2.7 LOAD DATA Syntax:If the FIELDS TERMINATED BY and FIELDS ENCLOSED BY values are both empty (''), a fixed-row (nondelimited) format is used. With fixed-row format, no delimiters are used between fields (but you can still have a line terminator). Instead, column values are read and written using a field width wide enough to hold all values in the field.,但这有一些限制,例如,数据类型为 TEXT 的列是不允许的。
  • 看不清楚能举个例子吗?
  • 您能否将SHOW CREATE TABLE datatable; 的结果添加到您的问题中并指明要导出的列?

标签: mysql mariadb


【解决方案1】:

不是直接的答案,但您可以在导出文件后从 bash 中运行 sed

sed 's/\t//g' D:/try.txt > D:/try-no-tabs.txt

以上是一个 Linux 选项。这是一个应该执行相同操作的 Windows 批处理脚本:

@set @a=0  /*
@cscript //nologo //E:JScript "%~F0" < D:/try.txt > D:/try-no-tabs.txt
@move /Y D:/try-no-tabs.txt D:/try.txt
@goto :EOF */
WScript.Stdout.Write( WScript.StdIn.ReadAll().replace(/\t/g,""));

将此保存为.bat 文件,然后运行它。

【讨论】:

  • 不知道 bash 能介绍一下吗?
  • 您运行的是 Windows 还是 Linux?
  • 我正在运行 Windows
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
相关资源
最近更新 更多