我创建了一个表,其中列出了 3 个产品,每个产品有一列。这几个月来效果非常好 - 直到我当然不得不添加更多产品。
tbl提交
--------------------------------
|submissionID|Prod1|Prod2|Prod3|
-------------|-----|-----|------
|101 |2 |0 |1 |
|102 |0 |0 |1 |
|103 |3 |6 |4 |
--------------------------------
我已尝试过,但无法将表格拆分为按submissionID 分组的多行,并添加每个productCode 的数量。
tblSubmissionProduct
--------------------------------------------------------------
|submissionProductID|submissionID|productCode|productQuantity|
--------------------|------------|-----------|----------------
|1 |101 |Prod1 |2 |
|2 |101 |Prod3 |1 |
|3 |102 |Prod3 |1 |
|4 |103 |Prod1 |3 |
|5 |103 |Prod2 |6 |
|6 |103 |Prod3 |4 |
--------------------------------------------------------------
submissionProductID 定义为 auto_increment
有没有比使用 split 函数更简单的方法来做到这一点?
最佳答案
您可以使用三个插入
或联合所有
来完成此操作:
insert into tbl_SubmissionProduct(submissionId, productCode, productQUantity)
select submissionId, 'Prod1', prod1
from tblSubmission
union all
select submissionId, 'Prod2', prod2
from tblSubmission
union all
select submissionId, 'Prod3', prod3
from tblSubmission;
您的新结构是明智之举。
关于MySQL:转换具有多列的行并插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143417/