Опитайте тази съхранена процедура
СЪЗДАВАНЕ НА ПРОЦЕДУРА updatePath(in itemId int)BEGIN DECLARE cnt int default 0; СЪЗДАЙТЕ временна таблица tmpTable ( `id` int, `name` varchar(15), `parent` int, път varchar(500) )engine=идентификатор за избор на памет, име, родител, име КАТО 'Път' от tbl, където id =itemId; изберете родител в cnt от tmpTable; докато cnt <> 0 прави Актуализиране на tmpTable tt, tbl t set tt.parent =t.parent, tt.path =concat(t.name, '> ', tt.path) WHERE tt.parent =t.id; изберете родител в cnt от tmpTable; край докато; изберете * от tmpTable; пускане на таблица tmpTable;END//
Запитване 1 :
извикване на updatePath(10)
SQL FIDDLE :
<предварителен код>| ID | ИМЕ | РОДИТЕЛ | ПЪТ |------------------------------------------------ -------------------------------------------------------| 10 | "Намажете ги с месо" | 0 | „Кухненски прибори“> „Ножове“> „Ножове за месо“> „Намажете ги с месо“ |Надявам се това да помогне