首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlimport和双引号

mysqlimport和双引号
EN

Stack Overflow用户
提问于 2009-05-19 20:45:39
回答 2查看 6.4K关注 0票数 1

我们有一个很大的以制表符分隔的文本文件(大约120,000条记录,50MB),我们试图使用mysqlimport将其放入MySQL中。有些字段用双引号括起来,有些则不是。我们使用fields-optionally-enclosed-by='\"'开关,但问题是一些字段值本身包含双引号(表示英寸),因此分隔的字段值可能是“ABCDEF19”。

我们不能控制文件的来源,所以我们不能更改那里的格式。我尝试删除fields-optionally-enclosed-by开关,但随后导入了值两边的双引号。

他记录的值中的引号被严重弄乱了。有没有一种方法可以告诉mysqlimport,有些字段可以用引号括起来,但仍然可以包含引号?我们想过也许可以使用全局搜索和替换来转义字段值中的双引号?还有其他的建议吗?

EN

回答 2

Stack Overflow用户

发布于 2009-05-19 21:08:56

您可以导入带有引号的值(删除了字段-可选-包含-由开关),然后运行检查,检查值的开头和结尾是否有双引号(假设没有值的开头有英寸),然后从开头和结尾截断1个字符,以删除导入时获得的多余引号。

编辑:在阅读了kekoav的回复后,我不得不同意,如果你能够在导入之前操作文件,这将是一个更明智的选择,但如果你在导入后被迫删除引号,你可以使用类似这样的东西:

代码语言:javascript
复制
UPDATE table 
SET column = 
IF(
STRCMP(LEFT(table.column,1),'"'),
MID(table.column,2,(LENGTH(table.column)-2)),
table.column
)

对于'table‘中的每个'column’

票数 1
EN

Stack Overflow用户

发布于 2009-05-19 21:09:57

如果您的数据在字段引用的正文中包含引号,而没有以某种方式对其进行分隔,那么您就有问题了。您不能保证mysqlimport会正确地执行此操作。

在尝试以这种方式插入数据之前,请先处理数据。

幸运的是,它是以制表符分隔的,因此您可以运行正则表达式,将引号替换为分隔版本,然后告诉mysqlimport分隔符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/884920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档