根据同一个表的内容更新表

时间:2013-09-17 00:05:14

标签: mysql

我有一张桌子:

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

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

0 个答案:

没有答案