我应该使用多个查询或功能吗?

时间:2016-11-05 00:12:27

标签: mysql sql

我有数据库表,如:

rcParams

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

例如:在第3行中,'cat1'是'cat3'的父类别,我想获取父类别的ID并存储到id name fullname parent_id -- ---- ----------------- --------- 1 cat1 cat0 > cat1 null 2 cat2 cat0 > cat1 > cat2 null 3 cat3 cat1 > cat3 null 字段。

我使用

分出了父猫的名字
parent_id

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

期望输出如。

 select id,name,
      substring_index(
                      substring_index(fullname, '>', -2),'>',1)
      as parent from categories

1 个答案:

答案 0 :(得分:2)

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

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

您可以将其直接转换为update

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