【发布时间】:2012-05-22 13:06:41
【问题描述】:
我有大量数据需要导入 MySQL 数据库。我习惯于导入逗号和制表符分隔的数据,但这次不同,我将在下面尝试用最简单的术语解释格式。
可能是这样的:
XXXXXXXXX
也可以是:
XXX X XXX
也可以是:
X X XX
我希望空格显示正确!如果是这样,您会看到每个字符都有其分配的空间,而不是由空格、制表符或逗号分隔的 3 个部分。 (它们在技术上由空格分隔,但由不同的数字分隔)。
我需要做的是说字符 1、2 和 3 进入数据库中的 field_1。字符 4 始终为空白,字符 5、6 和 7 进入 field_2 等。基本上每个部分都必须在自己的字段中。
现在,我想我可以将它作为所有一个字段导入到一个临时表中,也许可以使用 SUBSTR() 将这些数据排列成上述正确的格式。
但这似乎有点啰嗦。
有没有更好的方法来做到这一点?我希望将其从文本文件直接导入数据库中的正确格式,而无需采取任何其他步骤。
谢谢
【问题讨论】:
-
您可以使用 substr,但我不会在纯 sql 中这样做。只需阅读每一行,使用php.net/manual/en/function.substr.php 获取您的 3 个变量,然后插入。
-
这被称为“固定宽度数据”,顺便说一句,很常见。例如,请参见此处:stackoverflow.com/questions/3876092/…
-
感谢 Mellamokb,这很有帮助!我在这里发布这个问题的原因之一是因为我不知道它叫什么,因此真的很难寻找关于这个主题的任何有用的东西。我以前从未遇到过。
-
Nanne,这是我最初的想法之一,但我认为这真的很耗资源并且可能需要更长时间?
-
与 mysql 中的加载文件相比,当然,但如果您仍然在 PHP 中读取文件(我的意思是,您已经标记了问题 php)我没有看到问题。您可以随时尝试(这没什么大不了的,您需要 3 个
substr,所以工作量不大),看看它有多快 :)