我有一张桌子:
id, number, name, display_name
0001, 1, Category 1, null
0001-0002, 2, Category 2, null
0001-0002-0003, 3, Category 3, null
id是类别的完整路径,数字只是最终的类别编号。 我想更新display_name以包含路径中所有类别的全名,所以它们最终会被
0001, 1, Category 1, Category 1
0001-0002, 2, Category 2, Category 1 > Category 2
0001-0002-0003, 3, Category 3, Category 1 > Category 2 > Category 3
我知道我可以通过查找数字列来动态生成这些,但是这个表不需要经常更改,但它有很多查找 - 不仅仅是计算和存储数据似乎很浪费一旦。我可以在PHP中做到这一点,但它很慢,我认为有更好的方法吗?或许我只是以完全错误的方式解决这个问题。我意识到桌子上有很多冗余......我很高兴有任何意见。
我到目前为止
update categories set display=(select name from (select name from categories where number=1) t) where number=1
但显然只是将名称复制到显示名称。