mysql - 在 Excel for MySQL 导入中为每一列创建新行

标签 mysql excel

我有一个旧数据库,需要将其迁移到新设置。

当前列包含一个人的信息,其中 5 列表示一个人在其年龄下有多少个 child 。

这是我的 Excel 转储:

id  child1  child2  child3  child4  child5
-------------------------------------------
39    30                
41    33      30      21

我需要将其转换为多行,以便我可以将其导入到我的新表中(出生年份 = 2014-年龄)。

这就是上面示例中我的关系表的样子:

birthyear   person_id
---------------------
1984           39
1981           41
1984           41
1993           41

是否可以在 Excel 中使用一些公式来完成此操作?

数据库(Excel 表)包含超过 40,000 个条目,其中大多数根本没有子项(child1-5 NULL)。

我使用的是 Excel for Mac 2011 v14.1。

最佳答案

按照建议,我在 MySQL 而不是 Excel 中解决了我的问题。

我清理了 Excel 文件并创建了一个临时表:

CREATE TABLE `person` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `child1` int(11) DEFAULT NULL,
  `child2` int(11) DEFAULT NULL,
  `child3` int(11) DEFAULT NULL,
  `child4` int(11) DEFAULT NULL,
  `child5` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

然后,我将数据导入到该表中,并通过导出所有 5 列的查询结果来解决所有问题,如下所示:

SELECT id, (2014-child1) AS birthyear FROM person WHERE child1 IS NOT NULL;
....
SELECT id, (2014-child5) AS birthyear FROM person WHERE child5 IS NOT NULL;

现在我得到了 5 个 .csv,我可以将它们逐一合并或导入。

关于mysql - 在 Excel for MySQL 导入中为每一列创建新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808865/

相关文章:

php - 绕过 MySQL 查询

mysql - 如何查询纬度/经度区域内的所有记录?

mysql - 如何从具有状态列的多个表中检索具有多个连接的数据

vba - 在 VLOOKUP 中将 N/A 或 0 替换为空白

mysql - 无法启动 spark thriftserver(spark 的 hive-site.xml 没有覆盖默认值)

mysql - 在 SQL 中显示完整日期的月份

vba - 如何在Excel VBA中循环宏

php - DOMDocument::load - PHP - 获取属性值

python - 如何将特定工作表的excel保存到另一个excel工作表python中

excel - 如何在 Selenium WebDriver 中使用 Java 和 TestNG 中的 DataProvider 读取 excel 表中的多组值