Mailinglisten-Archive |
Tim wrote: > Hallo zusammen, > > ich beschäftige mich gerade mal mit Pfaden und Pfadbäumen. Trennzeichen ist > bei mir das Slash-Zeichen. Die Pfade werden in einer MySQL Datenbank-Tabelle > in einer Spalte abgebildet. Jetzt habe ich das Problem - wahrscheinlich wie > viele andere auch - dass bestimmte Sortier-Reihenfolgen eingehalten werden > sollen. Die einzelnen Pfad-Segmente sind numerisch, so dass spätestens nach > der 11 Position Probleme mit der numerischen Sortierung auftreten. Also: > > 0/1/1 > 0/1/11 > 0/1/2 > 0/1/3 > > etc... > > Ich brauche die Pfade aber numerisch nach letzter Stelle sortiert. Also: > > 0/1/1 > 0/1/2 > 0/1/3 > ... > 0/1/11 Ich emphele dir eine feste String-Länge zu nehmen... Also zum Beispiel immer 3 Stellen: 000/001/001 ... 000/001/011 (natürlich kannst du die / dann auch gleich ganz weglassen...) Dann kannst du einfach ORDER BY nehmen. Das kannst du natürlich auch so, sit aber viel komplizierter: Du kannst dir mit LEFT, RIGHT, STRPOS usw. in MySQL Kommandos zusammenbastalen um am Ende sowas wie ein explode() wie in php zu haben. Ich fürchte nur, dass du da keine Freude dran haben wirst. Wenn du feste Stringlängen nicht nehmen willst, weil sie schlecht skalierbar sind (wenn du die 3-stellige (over x-stellige) Begentzung sprengst), dann solltest du vielleicht besser nested sets nehmen. Hier ist eine sehr schöne Beschreibung dazu: http://www.klempert.de/nested_sets/ > > Liebe Grüße > Tim > Yannik
php::bar PHP Wiki - Listenarchive