User Tools

Site Tools


mysql:adjacencytree:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mysql:adjacencytree:index [13.03.2014 09:33:13]
yaslaw [Ausgangslage]
mysql:adjacencytree:index [12.12.2016 12:41:56] (current)
yaslaw
Line 28: Line 28:
  
 Das ergibt dann einen Baum der so aussieht. Das ergibt dann einen Baum der so aussieht.
-Die innerhalb eines Level geht nach sort und anschliessen nach title (für die Einträge ''​sort IS NULL''​)+Die innerhalb eines Level geht nach sort und anschliessen nach title (für die Einträge ​ 
 +\\ ''​sort IS NULL''​)
 ^  Baumdarstellung ​ ^^^^^^^ ^  Baumdarstellung ​ ^^^^^^^
 ^ lvl1 ^ lvl2 ^ lvl3 ^  lvl4 ^  lvl5 ^  title ^ Bemerkung ^ ^ lvl1 ^ lvl2 ^ lvl3 ^  lvl4 ^  lvl5 ^  title ^ Bemerkung ^
 | 01 |    |    |    |    | Node #001 | | | 01 |    |    |    |    | Node #001 | |
-|    | 02 |    |    |    | Node #002 | |+|    | 02 |    |    |    | Node #002 | Kein Sort definiert. Darum kommt Node 2 vor Node 4 |
 |    |    | 08 |    |    | Node #008 | Dieser Node kommt vor dem Node 3, dank der sort=A | |    |    | 08 |    |    | Node #008 | Dieser Node kommt vor dem Node 3, dank der sort=A |
 |    |    |    | 10 |    | Node #010 | | |    |    |    | 10 |    | Node #010 | |
Line 48: Line 49:
 ====1) Einfache Pfad-Liste für eine id==== ====1) Einfache Pfad-Liste für eine id====
  
-Hier habe ich eine zusammenfassung. Das ganze ausführlich und mit Erklärung: [[:mysql:​adjacencytree:​pathperid]] oder als Beispiel zu Spielen [[http://​sqlfiddle.com/#​!8/​252a2/​1|bei SQLFiddle]]+Hier habe ich eine zusammenfassung. Das ganze ausführlich und mit Erklärung: 
 +[[mysql:​adjacencytree:​pathlistperid]] oder als Beispiel zu Spielen [[http://​sqlfiddle.com/#​!8/​252a2/​1|bei SQLFiddle]]
  
 Mit dem folgenden SQL kann man den ganzen Ast auslesen. Ich nehme mal die ID 9 als Startpunkt Mit dem folgenden SQL kann man den ganzen Ast auslesen. Ich nehme mal die ID 9 als Startpunkt
Line 177: Line 179:
 ====3) Alle Unterordner einer id==== ====3) Alle Unterordner einer id====
 Natürlich kann es auch interessant sein, den Baum von oben nach unten zu durchsuchen. Die Aufgabenstellung könnte etwa so aussehen: Gib mir alle Unterordner einer bestimmten id. Natürlich kann es auch interessant sein, den Baum von oben nach unten zu durchsuchen. Die Aufgabenstellung könnte etwa so aussehen: Gib mir alle Unterordner einer bestimmten id.
-Dazu kann an den Code aus Beispiel ''​ als Grundlage nehmen. ​Wenn wir da die Gruppierung weglassen, haben wir eine Auflistung aller ids mit den dazugehörigen parentids. In diesen parentids kann man nun den Ordner suchen und - tada - alle ids die zu diesem Ordner gehören werden ausgegeben.+Wenn wir da die Gruppierung weglassen, haben wir eine Auflistung aller ids mit den dazugehörigen parentids. In diesen parentids kann man nun den Ordner suchen und - tada - alle ids die zu diesem Ordner gehören werden ausgegeben.
 <code sql> <code sql>
 SELECT SELECT
Line 207: Line 209:
  
 Ergibt mit id=2 das Resultat Ergibt mit id=2 das Resultat
-^  Ausgabe von Beispiel ​4: Alle Unterordner einer id  ^^+^  Ausgabe von Beispiel ​3: Alle Unterordner einer id  ^^
 ^ id ^ title ^ ^ id ^ title ^
 | 2 | Node #002 | | 2 | Node #002 |
Line 220: Line 222:
 <code sql> <code sql>
 CREATE TABLE nav CREATE TABLE nav
- (`id` int, `parentId` ​varchar(2), `title` varchar(9), `sort` int)+ (`id` int, `parentId` ​int, `title` varchar(9), `sort` int)
 ; ;
   
Line 237: Line 239:
 INSERT INTO `nav` (`id`, `parentId`, `title`, `sort`) VALUES (13, 11, 'Node #013', 1); INSERT INTO `nav` (`id`, `parentId`, `title`, `sort`) VALUES (13, 11, 'Node #013', 1);
 </​code>​ </​code>​
 +
 +===== Spielwiese =====
 +  *[[http://​sqlfiddle.com/#​!2/​e1702/​1|Beispiel 1 bei sqlfiddle.com]]
 +  *[[http://​sqlfiddle.com/#​!2/​e1702/​2|Beispiel 2 bei sqlfiddle.com]]
 +  *[[http://​sqlfiddle.com/#​!2/​e1702/​3|Beispiel 3 bei sqlfiddle.com]]
 {{tag>​MySQL Tree}} {{tag>​MySQL Tree}}
mysql/adjacencytree/index.1394699593.txt.gz · Last modified: 13.03.2014 09:33:14 (external edit)