Sascha Nehls: MySQL sortieren nach Position

Hallo,

ich habe eine Datenbank mit Spielern unsere Fussballvereins zu laufen. Dort ist der Vorname, Nachname und die Position gespeichert. Die Darstellung der Informationen auf der Website funktioniert ansich ganz gut, nur möchte ich die Spieler nach Position und Name geordnet haben. Allerdings möchte ich zuerst alle Torwärte, dann alle Abwehrspieler, Mittelfeldspieler und schließlich alle Stürmer haben. Bei einer alphabetischen Sortierung der form

SELECT Vorname, Nachname, Position FROM Spieler ORDER BY Position,Nachname

erreiche ich dieses jedoch nicht. Was kann ich tun? Ich könnte natürlich auch 4 Abfragen machen (für jede Position eine) aber gibt es da nicht was besseres?

Danke für die Hilfe!

  1. Hallo auch,

    meines Wissens gibt es keine Möglichkeit, MySQL diese Reihenfolge direkt beizubringen. Eine Möglichkeit wäre, die Positionen zusätzlich als Ziffer zu speichern und dort dann 0 = Torwart, 1 = Abwehr, 2 = Mittelfeld und 3 = Stürmer zu setzen. Dann kann nach diesem Feld geordnet werden. Aber viel eleganter als vier einzelne Abfragen ist das natürlich auch nicht.

    Tschüss
    Cochrane

    1. hi,

      Eine Möglichkeit wäre, die Positionen zusätzlich als Ziffer zu speichern und dort dann 0 = Torwart, 1 = Abwehr, 2 = Mittelfeld und 3 = Stürmer zu setzen. Dann kann nach diesem Feld geordnet werden. Aber viel eleganter als vier einzelne Abfragen ist das natürlich auch nicht.

      doch, es ist natürlich schon allein deshalb eleganter, weil es besser normalisiert ist.

      gruß,
      wahsaga

      --
      Rest in peace, Dimebag!
      #
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hi Sascha

    dieser Artikel beschäftigt sich genau mit dieser Aufgabenstellung

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

    Viele Grüße

    Stefan