Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Zeilennummern in result-set

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.01.2003
    Beiträge
    97

    Zeilennummern in result-set

    Hi,

    ich habe eine Liste, die mit ORDER BY geordnet ist. Genau gesagt, handelt es sich um eine Rangliste (Auswertung eines Spiels). Ich suche nach einer Möglichkeit, wie ich die einzelnen Ränge mit in das result-set reinbekomme.
    Code:
    SELECT platz, spieler,punkte FROM tb_plaetze ORDER BY punkte ASC;
    soll etwas ergeben wie:
    Code:
    +-------+----------+-------+
    | platz | spieler  | punte |
    +-------+----------+-------+
    | 1     | matthias | 50027 |
    | 2     | anne     | 49168 |
    | 3     | doro     | 41000 |
    | 4     | rookie   | 30000 |
    +-------+----------+-------+
    Bin für jede Hilfe dankbar!

    mfg
    phoku

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.06.2005
    Beiträge
    155
    Zitat Zitat von phoku
    Code:
    SELECT platz, spieler,punkte FROM tb_plaetze ORDER BY punkte ASC;
    ich nehme mal an platz ist keine spalte in deiner tabelle?

    in oracle geht sowas mit der rownum pseudo spalte.
    religion is a virus from outer space

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.01.2003
    Beiträge
    97
    Zitat Zitat von ninguno
    ich nehme mal an platz ist keine spalte in deiner tabelle?
    ja genau. nur leider benutze ich mysql in version 4 und kein oracle. gibt es entsprechendes auch dort?

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.01.2003
    Beiträge
    97
    Code:
    mysql> SET @rownum := 0;
    mysql> select @rownum := @rownum + 1 AS rank, benutzerkennung from tb_platzierungen;
    das funktioniert, aber nur fast... sobal ich noch ein LIMIT in das select einsetzt, tut's das nicht mehr

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    sollte eigentlich auch gehen - hast Du evtl. vergessen @rownum vorher wieder auf 0 zu setzen? So, dass er jetzt einfach weitergezählt hat?

    Code:
    SET @rownum:=0; 
    SELECT @rownum := @rownum+1 as rank, benutzerkennung,..... LIMIT 0,5; 
    SET @rownum:=0;

  6. #6
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Wieso brauchst du das eigentlich "raw" von der Datenbank ?

    Hasst du kein script / kein programm dazwischen was dir das nummerieren abnehmen kann ?

    Das Reine Standard ANSI SQL (95) kanns ned, da gibts keine "variablen" glaub ich.

    Aber wenn du m it was DB spezifischem leben kannst ..... (btw Autonum iss auch DB spezifisch, das gibts aber bei mehreren DBMS, da gaenge vielleicht was mit ner temp tabelle ) ... is obige Loesung sicher praktikabel.

    Ciao ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •