Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel for MySQL导入中为每列创建新行_Mysql_Excel - Fatal编程技术网

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

在Excel for MySQL导入中为每列创建新行,mysql,excel,Mysql,Excel,我有一个旧数据库,我需要迁移到我的新设置 当前的一个包含关于一个人的信息,其中5列表示一个人随年龄增长而生的孩子数量 以下是我的Excel转储: id child1 child2 child3 child4 child5 ------------------------------------------- 39 30 41 33 30 21 我需要将其转换为许多行,以便将其导入到生日为2014岁的新表中 这是我的关系表

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

当前的一个包含关于一个人的信息,其中5列表示一个人随年龄增长而生的孩子数量

以下是我的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表包含超过40000个条目,其中大多数条目没有任何子条目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,我可以合并或逐个导入。

您可以在excel中转换它,但我认为最好在旧表上构造一个查询,以新格式返回数据。我想这是个好主意!问题是我只有Excel中的数据库。但我想我可以创造一些临时的东西来完成这个。希望有一个更简单的解决方案使用UNION ALL组合查询并得到1个结果