Moldawian: MySQL: Sortierreihenfolge

Hallo,
ist es irgendwie möglich MySQL zu bringen folgendes (nur als Beispiel) richtig zu sortieren?
1
1.1
1.14
1.3
1.3.1
1.3.14
1.3.2
Daraus sollte dann folgendes werden:
1
1.1
1.3
1.3.1
1.3.2
1.3.14
1.14
Geht das irgendwie?
Vielen dank schonmal im voraus
Moldawian

  1. Hi,

    Geht das irgendwie?

    ja - durch ein entsprechendes DB-Konzept, in dem "1.3.14" als "14, Unterpunkt von 3, Unterpunkt von 1" gespeichert wurde - mit numerischen Werten. Den String(!) "1.3.14" wie gewünscht zu sortieren, dürfte zu einem recht umfangreichen Statement führen, um es mal vorsichtig auszudrücken.

    Cheatah

    1. Hi Cheatah,

      Geht das irgendwie?

      ja - durch ein entsprechendes DB-Konzept, in dem "1.3.14" als "14, Unterpunkt von 3, Unterpunkt von 1" gespeichert wurde - mit numerischen Werten. Den String(!) "1.3.14" wie gewünscht zu sortieren, dürfte zu einem recht umfangreichen Statement führen, um es mal vorsichtig auszudrücken.

      Dass das Ganze keine Zahl ist war mir schon klar. Allerdings kann ich deinen Vorschlag auch nicht verwenden, da die Anzahl der Unterpunkte praktisch unbegrenzt ist, ein Unterpunkt pro Spalte funktioniert also nicht (falls du das gemeint hast). Schade, dann muss ich das wohl irgendwie anders machen :-(

      MfG
      Moldawian

      1. Hi,

        Dass das Ganze keine Zahl ist war mir schon klar.

        das ist gut :-)

        Allerdings kann ich deinen Vorschlag auch nicht verwenden, da die Anzahl der Unterpunkte praktisch unbegrenzt ist, ein Unterpunkt pro Spalte funktioniert also nicht (falls du das gemeint hast).

        Ich dachte mehr an eine entsprechende Datenbeziehung, z.B. Kanten/Knoten. Im einfachsten Fall, wenn Du die Zahl der "Elemente" bestimmen kannst (wenn es beispielsweise drei Elemente ("1.3.14") gibt, aber garantiert niemals 4 ("1.3.14.2")), kannst Du natürlich auch eine entsprechende Zahl Spalten anlegen - das wird dann problematisch, wenn es auf einmal doch ein Element mehr gibt.

        Cheatah

        1. Hi Cheatah,

          Dass das Ganze keine Zahl ist war mir schon klar.

          das ist gut :-)

          Allerdings kann ich deinen Vorschlag auch nicht verwenden, da die Anzahl der Unterpunkte praktisch unbegrenzt ist, ein Unterpunkt pro Spalte funktioniert also nicht (falls du das gemeint hast).

          Ich dachte mehr an eine entsprechende Datenbeziehung, z.B. Kanten/Knoten.

          Kanten/Knoten? In dem Buch von Paul Dubois habe ich davon noch nichts gesehen. Hast du vielleicht eine URL (URI?) dazu?
          MfG
          Moldawian

      2. Hi Cheatah,

        Geht das irgendwie?

        ja - durch ein entsprechendes DB-Konzept, in dem "1.3.14" als "14, Unterpunkt von 3, Unterpunkt von 1" gespeichert wurde - mit numerischen Werten. Den String(!) "1.3.14" wie gewünscht zu sortieren, dürfte zu einem recht umfangreichen Statement führen, um es mal vorsichtig auszudrücken.
        Dass das Ganze keine Zahl ist war mir schon klar. Allerdings kann ich deinen Vorschlag auch nicht verwenden, da die Anzahl der Unterpunkte praktisch unbegrenzt ist, ein Unterpunkt pro Spalte funktioniert also nicht (falls du das gemeint hast). Schade, dann muss ich das wohl irgendwie anders machen :-(

        MfG
        Moldawian

        Man kann in SQL Funktionen einbinden.

        Innerhalb der Funktion kannst du dann beliebig Indizes zur Sortierung vergeben. Das order by statement sortiert dann anhand der Rückgabewerte der Funktion:

        select sortiere(Feldname) as rueckgabesortiere order by rueckgabesortiere

        Raphael

        1. Hi,

          Man kann in SQL Funktionen einbinden.

          MySQL kann das auch? Hast Du dazu einen Link?

          Cheatah