0

我有一张桌子:

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

但这显然只是将名称复制到显示名称。

4

0 回答 0