mysql - 将 XLS 数据导入 MySQL 表,保留第一列作为 PK

标签 mysql excel import

我收到了一个 Excel 电子表格,需要将其导入到 MySQL 数据库中。 每个 Excel 行都有许多列,其中第一列是 PK,其余的值应作为单独的行输入到数据库中。示例:

| SizeGroup | Size1 | Size2 | Size3 | Size4 | Size5 |
=====================================================
|     A     |   S   |   M   |   L   |       |       |
-----------------------------------------------------
|     B     |   S   |   M   |   L   |  XL   |       |
-----------------------------------------------------
|     C     |   S   |   M   |  XXL  |       |       |
-----------------------------------------------------
|     D     |   36  |   37  |  38   |  39   |  40   |
-----------------------------------------------------
|     E     |   M   |   XL  |       |       |       |
-----------------------------------------------------
|     F     |   39  |   40  |   41  |   42  |  43   |
-----------------------------------------------------

期望的结果是:

Table: sizes
id | size_group | size
=======================
 1 |      A     |  S
-----------------------
 2 |      A     |  M
-----------------------
 3 |      A     |  L
-----------------------
 4 |      B     |  S
-----------------------
 5 |      B     |  M
-----------------------
 6 |      B     |  L
-----------------------
 7 |      B     |  XL
-----------------------

如何实现这一目标?我可以使用 PHP 库编写一些代码来读取 xls 并写入数据库,但必须有更好的解决方案。

最佳答案

您可以在 Mysql 中导入 Excel 工作表,如下所示: http://dev.mysql.com/doc/refman/5.5/en/mysql-for-excel-export.html

导入数据后,指定主键,如下所示:

ALTER TABLE tablename ADD PRIMARY KEY(colname);

关于mysql - 将 XLS 数据导入 MySQL 表,保留第一列作为 PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455259/

相关文章:

arrays - 使用 R 将变量名称 "QW1I5K20"的值存储在数组元素 Q[1,5,20] 中

css - @import 在我的网站上不起作用

javascript - 如何使用 namespace 导入而不导入所有内容?

mysql - 使用 varchar 列作为外键引用是否有意义?

mysql - 尽管使用了 "SELECT",但 "ORDER BY"请求还是困惑的

php - 在 MySQL 查询中使用数组结果

excel - 针对单独的列表测试多个标准

php - 连接表中缺少数据时出现 SQL 连接错误

vba - 仅保存事件工作表的宏

javascript - 那么如何在请求时从另一个文件运行代码