Mysql
 sql >> база данни >  >> RDS >> Mysql

Извличане на йерархия от таблица като тази

Опитайте тази съхранена процедура

СЪЗДАВАНЕ НА ПРОЦЕДУРА 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 | „Кухненски прибори“> „Ножове“> „Ножове за месо“> „Намажете ги с месо“ |

Надявам се това да помогне



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL UUID първичен ключ - генериран от PHP или от MySQL?

  2. MySQL - Възможно ли е да се получат всички поделементи в йерархия?

  3. Версиониране на таблици (исторически таблици) и връзка между таблици за поръчки

  4. Използване на MySQL релационни бази данни на Arch Linux

  5. MySQL Подобно на множество стойности