准备CSV文件以进行数据库导入

时间:2017-03-15 11:59:56

标签: php mysql database excel csv

早上好,

我被要求处理一些包含字符串或数字数据的excel文件,下面是文件可能的示例:

-----------------------------------------------------------------------------
|         ID        |       NAME      |    SURNAME    |  AGE    |    SKU   |
-----------------------------------------------------------------------------
|         1         |      John       |      Doe      |    120  |    1      |
|         2         |      Mary       |      Doe      |    121  |    2      |
|         3         |      Jane       |      Kit      |    120  |    3      |
|         4         |      Kim        |   Richards    |    100  |    4      |
|         5         |      Jong       |      Kor      |    100  |    5      |
|         6         |      Un         |      Kor      |    100  |    6      |                                                                       
----------------------------------------------------------------------------

数据是为了问题而发明的。我们假设我有3个不同的CSV文件,其中包含相似的数据。

第一个CSV在示例[id, name, surname, age, sku]

中有五列

第二个CSV在示例中有五个列,还有一个列[id, name, surname, address, age, sku]

第三个CSV只有3列[id, name, surname],完全错过了示例中的两列。

我的想法是将所有三个CSV文件合并/合并为一个,当合并完成后,导入关系数据库中的所有数据。 我以前用PHP导入了CSV文件,但从未将数据合并在一起,所以我在这个意义上缺乏知识,特别是在术语和方法上。

考虑到我要合并的三个CSV在列中有所不同,我将如何合并它们?更重要的是,为了将来搜索这个论点,这个行动的传统名称是什么?

我猜合并过程会导致为文件中缺少的列创建虚拟数据。然后,CSV文件将包含6列,其中5列是第一个文件列,而添加的列是来自第二个文件列(第二个CSV中的address)。但是数据呢?

现在我应该有一个包含六列的文件,但是那些最初没有添加列值的行呢?考虑第一个和第三个CSV文件:

第一个CSV没有address列的数据,第三个CSV没有addressagesku列的数据

我如何向这些行提供虚拟数据(如null)?这个操作的名称是什么?

先谢谢大家!

0 个答案:

没有答案