Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.09.2003, 11:58
Pa



Ich hoff mir kann jemand bei nem SQL querry helfen:

Ich hab ne Menge Datensätze, die ich nach z.B. einem Votecount ordnen lasse
(ORDER BY)..

Mein Problem ist nun, dass ich nur die ersten 5 Datensätze Selektieren will. Gibts da in SQL überhaupt einen Befehl, oder muss ich das ganze doch umständlich(er) mit PHP regeln?

sowas wie:
NUR DIE ERSTEN 5 EINTRÄGE (SELECT FROM votelist ORDER BY votecount)

greez pa

--

_______________
cooldata.org - real bugware

zum Seitenanfang zum Seitenende Profil || Suche
001
02.09.2003, 12:03
blair



Quellcode:SELECT * FROM foo WHERE bar=baz ORDER BY fred LIMIT n

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche
002
02.09.2003, 12:03
Joker



SELECT FROM votelist ORDER BY votecount limit 0,5

--

-=[ Aigu.ch ]=-

zum Seitenanfang zum Seitenende Profil || Suche
003
02.09.2003, 12:08
the_viking



SELECT * FROM votelist ORDER BY votecount DESC LIMIT 0,5

"select * from votelist" sollte klar sein
das DESC gehört noch zu ORDER BY ( desc = descending ~ absteigend)
Der LIMIT Syntax ist wie folg: LIMIT anfang,ende

als wenn man als result folgendes kriegen würde:
Quellcode:1 - hello - 333
2 - bye - 44423
3 - nite - 3389
4 - lol - 981
5 - gg - 7723
und darauf dann LIMIT 2,4 anwenden würde, würde man als endgültiges result folgendes kriegen:
Quellcode:2 - bye - 44423
3 - nite - 3389
4 - lol - 981
Ich hab mal ne andere Query frage:
Wie kann ich per mysql-query die größe einer Datenbank herausfinden?

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
004
02.09.2003, 12:08
Pa



Wow, danke!

Das gilt dann wohl als schnellstes Reply 2003

--

_______________
cooldata.org - real bugware

zum Seitenanfang zum Seitenende Profil || Suche
005
02.09.2003, 12:11
the_viking



hehe und als das mit den meisten aufeinander folgenden antworten.. Als ich Anfing meine Antwort zu schreiben waren die anderen auch noch nicht fertig ;)

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
006
02.09.2003, 17:55
Chronial



du kannst auch einfach schreiben

LIMIT 5
dann nimmt er auch nur die ersten 5...

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
007
02.09.2003, 22:08
blair



hat wer schon vor n stunden geschrieben?

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche
008
02.09.2003, 22:22
Chronial



ja, ichs schon gesehn, aber ich dachte die beste Antwort sollte ganz unten stehn ;)

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
009
02.09.2003, 22:41
Horat



lul
mal ne frage

würde bei
Quellcode:SELECT * FROM foo ORDER BY bar LIMIT 0,5das gleiche Ergebnis kommen wie bei
Quellcode:SELECT * FROM foo Order BY bar LIMIT 1,5?

Denn nach the_viking's Erklärung heist "Start", dass die Rückgabe die "Start-Zeile" auch enthält. Also müsste doch bei 1,5 auch die erste Zeile miteinbezogen werden (bei 0,5 sowieso). Oder gibt es auch eine 0 Zeile??

--

Bild Blog <--

zum Seitenanfang zum Seitenende Profil || Suche
010
02.09.2003, 22:49
OJay



vielleicht beantwortet das deine frage :)

Zitat:
In einigen Fällen handhabt MySQL die Anfrage unterschiedlich, wenn Sie LIMIT # statt HAVING benutzen:

Wenn Sie nur einige wenige Zeilen mit LIMIT auswählen, benutzt MySQL in einigen Fällen Indexe, wenn er ansonsten vorzugsweise einen vollständigen Tabellenscan durchführen würde.
Wenn Sie LIMIT # mit ORDER BY benutzen, beendet MySQL das Sortieren, sobald er die ersten # Zeilen gefunden hat, anstatt die gesamte Tabelle zu sortieren.
Wenn Sie LIMIT # mit DISTINCT kombinieren, hört MySQL auf, sobald er # eindeutige Zeilen gefunden hat.
In einigen Fällen kann GROUP BY aufgelöst werden, indem der Schlüssel in der Reihenfolge gelesen wird (oder der Schlüssel sortiert wird) und danach Zusammenfassungen berechnet werden, bis sich der Schlüsselwert ändert. In diesem Fall berechnet LIMIT # keine unnötigen GROUP BY's.
Sobald MySQL die ersten # Zeilen an den Client geschickt hat, wird die Anfrage abgebrochen.
LIMIT 0 gibt immer schnell eine leere Ergebnismenge (empty set) zurück. Das ist nützlich, um die Anfrage zu überprüfen und die Spaltentypen der Ergebnisspalten zu erhalten.
Die Größe der temporären Tabellen benutzt LIMIT #, um zu berechnen, wieviel Platz benötigt wird, um die Anfrage aufzulösen.

--

cya dat OJay
Brainshock Interactive | Planet OJay
ICQ auth-requests, die ich nicht zuordnen kann werde ich ab sofort ignorieren!

zum Seitenanfang zum Seitenende Profil || Suche