gpt4 book ai didi

mysql - 将一个表中的数据插入到另一个表中(第一个表中的字段最多为 `quantity` 字段)

转载 作者:行者123 更新时间:2023-11-29 07:43:57 27 4
gpt4 key购买 nike

我有一个 MySQL 表 creatures :

id | name   | base_hp | quantity
--------------------------------
1 | goblin | 5 | 2
2 | elf | 10 | 1

我想创建 creature_instances基于它:

id | name    | actual_hp
------------------------
1 | goblin | 5
2 | goblin | 5
3 | elf | 10

idcreatures_instances不重要且与 creatures.id 无关s。

如何以最优化(就执行时间而言)的方式仅使用 MySQL 来实现? 单个查询是最好的,但过程也可以。我使用InnoDB

我知道在例如的帮助下php 我可以:

  1. 分别选择每一行,
  2. 制作for($i=0; $i<line->quantity; $i++)循环中我将一行插入 creatures_instances对于每次迭代。

最佳答案

最有效的方法是在 SQL 中完成所有操作。如果您有一个 numbers 表,将会很有帮助。如果没有,您可以在子查询中生成数字。以下作品最多 4 份:

insert into creatures_instances(id, name, actual_hp)
select id, name, base_hp
from creatures c join
(select 1 as n union all select 2 union all select 3 union all select 4
) n
on n.n <= c.quantity;

关于mysql - 将一个表中的数据插入到另一个表中(第一个表中的字段最多为 `quantity` 字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com