【问题标题】:Importing Excel CSV to MySQL relational database?将 Excel CSV 导入 MySQL 关系数据库?
【发布时间】:2013-10-15 21:13:24
【问题描述】:

我有两张桌子basketsfruitsbasket 有许多不同的 fruits,所以它是一对多的关系。

表格如下:

baskets 
id NOT NULL PRIMARY KEY AUTO_INCREMENT,
basket_name varchar(20)

fruits 
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
fruit_name varchar(20),
basket_id INT FOREIGN KEY REFERENCES baskets(id)

我有一个 Excel 表,其中列名和数据组织如下:

篮子水果 Basket_1 苹果、芒果、香蕉、梨 Basket_2 芒果、草莓、李子、香蕉、葡萄 Baskt_3 覆盆子、苹果、梨

在上面建模的关系架构中,将所有这些水果存储在一个篮子中的最佳方法是什么?

我已经将我的 XLS 文件转换为 CSV,以便使用脚本(在 Ruby一行)在电子表格中。

我的问题与此类似:Import Excel Data to Relational Tables at MySQL

但数据不一样。

欢迎所有建议!

【问题讨论】:

  • 您是否已经创建了一些模型?请向我们展示您迄今为止所做的工作。

标签: mysql excel csv


【解决方案1】:

这类问题似乎总是需要相当多的步骤。

如果水果位于单独的单元格中,请使用 Excel 中的粘贴 - 转置工具将行转换为列,方法是将所有单元格复制到一张工作表中,然后使用特殊粘贴 - 转置将它们粘贴到新工作表中。

在第三张表中,我将创建一个公式,将每个单元格的值连接起来,从第二行开始,到第一行中的值。如果 sheetA 具有新转置的值,而 sheetB 是新工作表,则公式将为 =sheetA!a$1 & "," & sheetA!a2,并从 a2:zz999 复制该公式或它需要走多远。

然后需要对列进行拼接,可以手动进行,也可以在导入sheet后通过Mysql中的UNION语句进行:

SELECT COLUMN1 FROM SHEETB
UNION
SELECT COLUMN2 FROM SHEETB
UNION
...

你明白了。一旦组合的篮子-水果字段在一列中,就很容易分成两列。

【讨论】:

    猜你喜欢
    • 2011-06-23
    • 1970-01-01
    • 2011-10-19
    • 2017-11-15
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多