gpt4 book ai didi

mysql - 我应该使用多个查询或函数吗?

转载 作者:行者123 更新时间:2023-11-29 02:15:31 25 4
gpt4 key购买 nike

我有这样的数据库表:

id  name  fullname            parent_id
-- ---- ----------------- ---------
1 cat1 cat0 > cat1 null
2 cat2 cat0 > cat1 > cat2 null
3 cat3 cat1 > cat3 null

我想获取父类别的 ID 并使用 sql 查询存储到 parent_id。

例如:在第 3 行中,'cat1' 是 'cat3' 的父类别,我想获取父类别的 id 并存储到 parent_id 字段中。

我用

拆分了父猫的名字
 select id,name,
substring_index(
substring_index(fullname, '>', -2),'>',1)
as parent from categories

从哪里我可以命名父类别。

期待这样的输出。

id  name  fullname            parent_id
-- ---- ----------------- ---------
1 cat1 cat0 > cat1 null
2 cat2 cat0 > cat1 > cat2 1
3 cat3 cat1 > cat3 1

最佳答案

您可以通过简单的连接获取父级:

select c.*, cp.id as parentid
from categories c join
categories cp
on c.fullname = concat(cp.fullname, ' > ', c.name);

您可以将其直接转换为更新:

update categories c join
categories cp
on c.fullname = concat(cp.fullname, ' > ', c.name)
set c.parentid = cp.id;

关于mysql - 我应该使用多个查询或函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433428/

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