• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

View Nummerierung

Yosh™

Mitglied
Guten Abend,

ich hab meine SQL VIEW erstellt, in der ich eine Nummerierung bräuchte, angefangen bei 1.
Wie erstelle ich eine solche Nummerierung für eine View?
Oder kann ich bei jedem Eintrag den ich auslese (z.B. der 13.000 Eintrag) auf welcher Position er in der Datenbank steht?

Ich meine das ca. so: Wenn man ein SELECT * FROM ohne WHERE Klausel ausführt, hat SQL ja immer eine Standard Sortierung bzw. beim VIEW ist ja festgelegt wie er es sortieren soll (ORDER BY).
Jetzt müsste es doch möglich sein bei einem SELECT * FROM mit WHERE Klausel herrauszufinden auf welcher Position der Zutreffende Eintrag in der Datenbank steht, oder?

Und falls nicht, zurück zur Ursprünglichen Frage, wie kann ich in einer VIEW Table beim Erstellen der Tabelle einen Counter mit einbauen, der dann auch gespeichert wird?

MfG
 
Werbung:
Naja an sich hab ich eine VIEW angelegt wo Sachen gelistet werden (15.500)
Bei der Ausgabe an sich kann ich jetzt einfach "Position: 1, 2, 3 usw" dank einer foreach Schleife ausgeben.
Sodass ich Rang 1 bis 15.500 habe.

Jetzt soll man aber auch nach bestimmten Sachen suchen können, sodass man nicht 15.500 Einträge per Hand klicken muss, aber beim Ergebnis des Eintrages soll die Position angezeigt werden.
Bei einer foreach Schleife wäre die Position "1", aber wenn es erst der 13.000 Einträg in der Datenbank ist, müsste ich eine Ausgabe der Position von "13.000" haben und nicht von "1"
 
Werbung:
Ich verstehe es immer noch nicht. Und was soll überhaupt eine Position in einer Datenbank sein?
 
Also:

6d020e8173.png


Die Namen sind eine Auflistung anhand der Daten aus der Datenbank.
Die Auflistung findet derzeit allerdings über einen Counter im PHP Script statt.

Wenn ich jetzt nach einem bestimmten Namen suche "Ciara" z.B. zeigt er mir nurnoch Ciara an.
Dann ist die Position von Ciara allerdings nichtmehr "12", sondern "1". Weil halt Ciara das einzige Ergebnis bei der Abfrage ist, wenn man nach dem Namen sucht.

Jetzt möchte ich es aber erreichen, das ich nach Ciara suchen kann, nurnoch Ciara angezeigt wird, aber Ciara nicht die Positions Nummer "1" kriegt, sondern die selbe Positionsnummer wie in der Abfrage wie wenn ich ALLE Namen abfrage, also "13".

Das ist so schwer zu erklären. Hoffe jetzt wird es verständlich.

Und die Position in der Datenbank war gemeint

04335dfd2b.png


Hier ist Ciara der 13. Eintrag in der Datenbank.
 
Werbung:
Code:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank,

Danke, hat mir weiter geholfen

habe es jetzt so gelöst:

Code:
SET @ranking = 0;
SELECT id, name, rank FROM (
    SELECT id, name, @ranking := @ranking +1 AS rank FROM web_player_ranking
) AS subquery
WHERE name = 'Ciara'

Ausgabe:

ffc32d02d8.png


Alles so wie gewünscht :)
Danke euch allen.
 
Bei ORACLE gibt es in jedem Querie-Result die Pseudo-Spalte ROWNUM, ich dachte, MySQL hätte etwas analoges, ohne dass man einen eigenen Counter definieren muss.
 
Werbung:
Zurück
Oben