Bestimmte Datensätze aus Tabelle holen
Gerhard
- datenbank
Hallo!
Ich möchte aus meiner Tabelle eine bestimmte Menge von Datensätzen herausholen (z.B.: alles vom 15. bis zum 21. Datensatz, das wären also 5 datensätze).
Dazu könnte man abfragen: ... where id between 15 and 21
Jetzt ist es aber möglich dass meine id löchrig ist, weil ich vorher schon was gelöscht habe, möchte aber trotzdem nicht von 5 als Anzahl der Datensätze abweichen.
Geht das irgendwie direkt mit SQL zu lösen?
Bisher habe ich nämlich immer mittels PHP alle Datensätze in ein Array geladen und dann über den Array-Index zugegriffen. Das ist jedoch sehr aufwändig.
Danke im Voraus
lg Gerhard
Hi,
(z.B.: alles vom 15. bis zum 21. Datensatz,
in einer unsortierten Menge gibt es keinen n-ten.
das wären also 5 datensätze).
Sieben.
Dazu könnte man abfragen: ... where id between 15 and 21
Der explizite Wert der ID hat *keine* Bedeutung. Gar keine. Die ID dient *nur* der IDentifizierung des Datensatzes.
Geht das irgendwie direkt mit SQL zu lösen?
Nein. Je nachdem, welches DBMS Du verwendest, ist es aber eventuell mit dessen SQL-Dialekt zu lösen. Bei Oracle kannst Du beispielsweise die Pseudospalte ROWNUM verwenden, bei MySQL die LIMIT-Klausel.
Bisher habe ich nämlich immer mittels PHP alle Datensätze in ein Array geladen und dann über den Array-Index zugegriffen. Das ist jedoch sehr aufwändig.
Ja.
Cheatah
Hallo,
das wären also 5 datensätze).
Sieben.
sorry
Geht das irgendwie direkt mit SQL zu lösen?
Nein. Je nachdem, welches DBMS Du verwendest, ist es aber eventuell mit dessen SQL-Dialekt zu lösen. Bei Oracle kannst Du beispielsweise die Pseudospalte ROWNUM verwenden, bei MySQL die LIMIT-Klausel.
Könntest du mir bitte noch einen kleinen Denkanstoß geben, wie die LIMIT-Klausel in diesem Fall funktioniert?
Danke für den Tipp
lg Gerhard
Hi,
das wären also 5 datensätze).
Sieben.
sorry
eine Entschuldigung ist nicht nötig, ich wollte Dich nur auf einen Fehler hinweisen.
Könntest du mir bitte noch einen kleinen Denkanstoß geben, wie die LIMIT-Klausel in diesem Fall funktioniert?
Was hast Du versucht, woran ist es gescheitert, was hat die Dokumentation Deines DBMS' dazu gesagt? Welches ist überhaupt Dein DBMS?
Cheatah
Ich kenne die LIMIT-Klausel nicht, daher weiß ich auch nicht wie sie zu verwenden ist. friction sagte soeben, dass ich dazu einen startwert benötige, den ich allerdings nicht habe.
ich habe weiß zwar den start column-index und den end-column-index
aber du sagtest dass man darauf in mysql nicht zugreifen kann
lg gerhard
Hi,
Ich kenne die LIMIT-Klausel nicht, daher weiß ich auch nicht wie sie zu verwenden ist.
ähm, Schritt 1 ist in solchen Fällen, die Dokumentation zu konsultieren.
ich habe weiß zwar den start column-index und den end-column-index
Was ist das?
aber du sagtest dass man darauf in mysql nicht zugreifen kann
Sagte ich das?
Cheatah
ach bitte schön
ich versuch doch wirklich nur meine arbeit so schnell wie möglich zu erledigen
lass dir doch nicht alles aus der nase ziehen
nimms nicht persönlich ich will dich wirklich nicht verärgern aber so zögern wir das ganze doch nur unnötig hinaus
wie anders sollte man dann ein gästebuch mit begrenzter anzahl von einträgen pro seite schreiben
danke lg gerhard
ok jetz hab ichs selber herausgefunden
danke für den tipp mit limit
für alles andere: danke für garnichts
lg gerhard
Hi,
für alles andere: danke für garnichts
möchtest Du in diesem Forum noch Hilfe bekommen? Das klingt mir jedenfalls nicht danach.
Cheatah
Hilfe definiere ich anders als du
ich arbeite jetzt weiter
mach was du willst
lg gerhard
Hi,
Hilfe definiere ich anders als du
tatsächlich? Du hast doch Dein Problem selbst (englisch: SELF) lösen können, oder nicht?
mach was du willst
Überarbeite Deine soziale Kompetenz.
Cheatah
Hi,
Hilfe definiere ich anders als du
tatsächlich? Du hast doch Dein Problem selbst (englisch: SELF) lösen können, oder nicht?
ich muss Cheatah recht geben. Er versteht es wie kein anderer, Menschen auf den Pfad der Selbstfindung zu finden. Das macht sie nicht nur klüger, sondern vor allem können sie auch stolz auf sich sein.
Im Grunde genommen sind seine Antworten und Denkanstöße in den seltesten Fällen nötig, denn fast jede im Forum auftauchende Frage kann im Archiv gesucht und gefunden werden. Aber dann könnte ich auch nicht über seine Kommentare schmunzeln! :)
Hopsel
yo,
ich muss Cheatah recht geben. Er versteht es wie kein anderer, Menschen auf den Pfad der Selbstfindung zu finden. Das macht sie nicht nur klüger, sondern vor allem können sie auch stolz auf sich sein.
Cheatah irrt sich wesentlich mehr als ihm lieb ist. ohne frage hat er ein grosses wissen, aber das wird ihm meiner meinung nach auch immer wieder zum verhängnis. er glaubt, so wie sich die welt in seinen augen dreht, so muss sie sich auch für alle anderen drehen. ich denke, jeder sollte seinen eigenen stil selbst entwickeln, und selber "erspüren", was am besten für ihn ist. und dazu gehört es auch, dass man mal irrwege einschlägt.
Im Grunde genommen sind seine Antworten und Denkanstöße in den seltesten Fällen nötig, denn fast jede im Forum auftauchende Frage kann im Archiv gesucht und gefunden werden. Aber dann könnte ich auch nicht über seine Kommentare schmunzeln! :)
einige intellektuelle behaupten, alle fragen wären schon mal irgendwann in der geschichte der menschheit gestellt worden und wiederholen sich nur noch. dürfte man nur noch neue fragen stellen, dann würde ich für die exsitens dieser forums schwarz sehen.
Ilja
Hi,
Cheatah irrt sich wesentlich mehr als ihm lieb ist.
für mich hat er Vorbildfunktion und ich finde es gut, dass es Menschen wie ihn gibt.
Du klingst so, als würde er verletzend wirken. Ich empfinde es anders.
einige intellektuelle behaupten, alle fragen wären schon mal irgendwann in der geschichte der menschheit gestellt worden
Was haben philosophische Fragen mit denen im Forum zu tun?
MfG Hopsel
yo,
für mich hat er Vorbildfunktion und ich finde es gut, dass es Menschen wie ihn gibt.
Cheatah scheint für dich genau die richtigen ansätze zu haben. aber hier geht es weniger um dich oder mich, sondern um die perspektive der fragenden. und die wollen in aller regel nicht gleichzeitig noch belehrungen bekommen, sondern lösungen für ihr problem. jeder kann darüber denken wie er will, aber leztlich ist keiner gezwungen zu antworten. Und Cheatah ist scheinbar nicht in der lage, von seiner ansichten mal abzulassen und sich auf die ebene der fragenden zu begeben. für den einen reicht ein link, der andere will die lösung genauer erklärt bekommen. wenn ich mir die mühe nicht machen will, kann man es einfach sein lassen und sich sprüche wie nach der bezahlung für die antwort verkneifen.
Du klingst so, als würde er verletzend wirken. Ich empfinde es anders.
wie bereits erwähnt, es geht nicht um deine oder meinse gefühle, sondern um den fragenden. und seine meinung über die art und weise wie Cheatah geantwortet hat ist wohl eindeutig. die lösung hätte er auch von anderen bekommen können, ohne gleich noch ein paar spitzen abzubekommen.
Was haben philosophische Fragen mit denen im Forum zu tun?
hier im forum haben einige die ansicht, ein problem sollte nur einmal gelöst werden und dann "darf" die frage nicht noch einmal gestellt werden. ich bin da anderer meinung, jeder muss seinen eigenen erfahrungen machen. und wenn jemand auf die gleichen probleme stößt, kann er das problem auch auf seine art angehen. ich behaupte mal bei 99% der fragen hier in selfhtml würde man immer eine lösung im internet finden können. wäre ganz schon leer hier. und nicht zu vergessen, sich lösungen selbst erarbeiten zu können, setzt gewisse erfahrungen vorraus. es wird aber immer so dargestellt, als wenn die meisten frageneden einfach nur zu faul sind.
Ilja
Hi,
und die wollen in aller regel nicht gleichzeitig noch belehrungen bekommen, sondern lösungen für ihr problem.
aber genau da setzt das Forum an. Nur sollte meiner Meinung nach keine vorgefertigte Antwort kommen, sondern nur ein kleiner Tipp. Denn was man selbst korrigiert, merkt man sich. Alles was Cheatah seinen Antworten hinzufügt sind m. E. wertvolle Infotmationen.
Was haben philosophische Fragen mit denen im Forum zu tun?
hier im forum haben einige die ansicht, ein problem sollte nur einmal gelöst werden und dann "darf" die frage nicht noch einmal gestellt werden.
Ich kann diese Leute verstehen. Es gibt Tage, da kommt das gleiche Thema vier oder fünf Mal. Dass man da manchmal etwas überzogen reagiert (auch unbewusst) ist verständlich.
es wird aber immer so dargestellt, als wenn die meisten frageneden einfach nur zu faul sind.
Ich bin Überzeugt davon, dass die Hälfte aller Fragesteller das auch ist.
MfG Hopsel
yo,
aber genau da setzt das Forum an. Nur sollte meiner Meinung nach keine vorgefertigte Antwort kommen, sondern nur ein kleiner Tipp.
und genau da unterscheiden wir uns. ich gebe den leuten die hilfe, die sie bekommen wollen. ist das nur ein kleiner tipp, dann bekommen sie den, ist das eine komplette lösung dann diese. was am besten für sie ist, müssen sie selbst beurteilen, ich will ihnen das nicht abnehmen.
du willst ihnen zusätzlich noch deine meinung und wertansicht "verkaufen". für mich ist das schlechte hilfe, jemanden etwas geben zu wollen, was er gar nicht will.
und was Cheatah betrifft, er spielt hier den oberlehrer und alleswisser und verpisst sich immer kleinlaut, wenn er mal schwachsinn redet.
Ilja
Hi,
ich versuch doch wirklich nur meine arbeit so schnell wie möglich zu erledigen
und da hast Du noch Zeit, auf Antworten zu warten? Lies in der Doku nach, das geht _deutlich_ schneller - *und* bringt Dir wesentlich mehr.
lass dir doch nicht alles aus der nase ziehen
Selbiges desgleichen. Ich weiß immer noch nicht, welches DBMS Du verwendest. Das ist die mit riesengroßem Abstand wichtigste Information, die Du zu geben hast.
nimms nicht persönlich ich will dich wirklich nicht verärgern aber so zögern wir das ganze doch nur unnötig hinaus
Wenn Du möchtest, dass ich Deine Arbeit erledige, dann mache mir ein finanzielles Angebot.
wie anders sollte man dann ein gästebuch mit begrenzter anzahl von einträgen pro seite schreiben
Du hast nicht genügend Grundlagen erfüllt, um ein derartiges Problem sehen zu können. Konsultiere die Dokumentation Deines DBMS bezüglich der Hinweise, die Du bekommen hast.
Cheatah
yo,
Bei Oracle kannst Du beispielsweise die Pseudospalte ROWNUM verwenden, bei MySQL die LIMIT-Klausel.
meines wissen kann man dafür die pseudospalte ROWNUM keinesfalls nehmen. ROWNUM funktioniert nur mit ROWNUM = 1 oder ROWNUM < x operator. alle anderen bedingungen wie ROWNUM = x, wobei x <> 1 oder rownum > x sollten eine leere ergebniss-menge liefern.
Ilja
hallo,
Ich möchte aus meiner Tabelle eine bestimmte Menge von Datensätzen herausholen (z.B.: alles vom 15. bis zum 21. Datensatz, das wären also 5 datensätze).
wenn du einen start wert hättest könntest du mit LIMIT arbeiten.
$q="SELECT * FROM table WHERE id>'$startwert' ORDER BY id ASC LIMIT 5"
irgendwie sowas vielleicht !