Hugo: Sortiermethoden in SQL

Hallo

Ich habe eine Datenbank erstellt in der Kleidungsstücke gespeichert sind. Mit Größe & Name & Farbe & so.

Ich wollte fragen ob man bei der Select-Abfrage irgendwie einen Schlüßel zum sortieren vorgeben kann.
Also wenn ich nach Größe sortiere, daß er es dann in der Reihenfolge:
S
M
X
XL
XXL
sortiert & nicht alphabetisch?

  1. Hi,

    Ich habe eine Datenbank erstellt in der Kleidungsstücke gespeichert sind. Mit Größe & Name & Farbe & so.
    Ich wollte fragen ob man bei der Select-Abfrage irgendwie einen Schlüßel zum sortieren vorgeben kann.
    Also wenn ich nach Größe sortiere, daß er es dann in der Reihenfolge:
    S
    M
    X
    XL
    XXL
    sortiert & nicht alphabetisch?

    Da eine Datenbank keine ahnung davon hat, welche Größe denn die kleinste ist, musst du entweder ein zusätzliches Feld direkt in der Tabelle einfügen:

    z.b.

    <name> <groesse_sortierung> <groesse> <farbe>

    und wen du "S" bei <groesse> einträgst, trägst du gleichzeitig in <groesse_sortierung> "1" ein und dann bei "M" - "2", "l" - "3" ... usw

    Somit kannst du dann einfach per:

    "ORDER BY <groesse_sortierung> asc"

    deine größen sortieren wie du es am liebsten magst.

  2. Hi Hugo,

    Also wenn ich nach Größe sortiere, daß er es dann in der Reihenfolge:
    S
    M
    X
    XL
    XXL
    sortiert & nicht alphabetisch?

    Eine solche Möglichkeit ist mir nicht bekannt, zumal hinter dieser Sortierung ja (aus Sicht eines Computers) keine Regel steckt und sie vollkommen sinnbefreit ist.

    Als Workaround könntest du aber die Kleidungsgrößen als Zahlen in ein INT Feld schreiben, welches zu dann problemlos (mit ORDER BY) sortieren kannst.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Crypt::PasswdMD5 jetzt auch in PHP
    Der erste Schweizer ist entstanden, als ein Russe versucht hat holländisch zu sprechen. (Thomas Gottschalk)
  3. Hello,

    Also wenn ich nach Größe sortiere, daß er es dann in der Reihenfolge:
    S
    M
    X
    XL
    XXL

    Du könntest diese Kürzel gewichten lassen durch eine Funktion oder auch nur durch geschachtelte if() in der Abrage.

    Und wenn ich mir das so anschaue, stehen die Bezeichnungen doch auch bei normaler ASCII-Sortierung schon fast in der passenden Reihenfolge.

    Wie das mit den Daten-Untertypen SET und ENUM mit der Sortierung bei MySQL ist, habe ich noch nie wirklich ausprobiert.

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  4. Hallo Hugo,

    Ich wollte fragen ob man bei der Select-Abfrage irgendwie einen Schlüßel zum sortieren vorgeben kann.

    http://aktuell.de.selfhtml.org/tippstricks/datenbanken/sqlsort/index.htm

    Grüße aus Nürnberg
    Tobias

    1. Hallo,

      http://aktuell.de.selfhtml.org/tippstricks/datenbanken/sqlsort/index.htm

      Wobei man das reservierte Wort index hier entweder in Backticks setzen müsste, oder aber es lieber gleich vermeiden und gegen eine Trivialbezeichnung ersetzen sollte.

      LG

      Chris