gpt4 book ai didi

mysql - 当插入到 MySQL 中的另一个表时,通过自动递增连接多个表值

转载 作者:行者123 更新时间:2023-11-29 09:32:47 26 4
gpt4 key购买 nike

我在 MySQL 中有 2 个表,如下所示:

enter image description here

请注意,category_id 是类别表中category_key 的外键

我想插入到第三个表(名为“catalog”)目录项,这样每个目录 ID 都将从其类别和子类别 ID 生成,并为每个类别子类别的串联自动递增编号类别 ID。

例如:

假设我们在“categories”表中有一行,其category_key为“ABC”,在“sub_categories”表中也有一行,其sub_category_key为“EFG”,因此目录表中的一行将具有键“ABC-EFG-0001”,同一子类别中的其他键将具有“ABC-EFG-0002”,依此类推。

例如,对于其他 ID 值。 category_id="OMG"和 sub_category_id="YYY",数字从 1 开始递增,因此 ID 为“OMG-YYY-0001”。

能给我一个 INSERT 查询的示例吗?

谢谢!

最佳答案

您可以使用ROW_NUMBER()(MySQL 8.0中提供)来分配数字,并使用LPAD()来格式化它们。请注意,您不需要使用表 categories,因为所有相关信息都可以在 sub_categories 中找到(但如果您确实需要它,则只需添加 >加入)。

INSERT INTO catalog
SELECT
sc.*,
CONCAT(
category_key,
'-',
sub_category_key,
'-',
LPAD(
ROW_NUMBER() OVER(PARTITION BY category_key, sub_category_key ORDER BY sub_category_key),
4,
0
)
)
FROM sub_categories sc

关于mysql - 当插入到 MySQL 中的另一个表时,通过自动递增连接多个表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58317588/

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