Gerhard: Bestimmte Datensätze aus Tabelle holen

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

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

      1. 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

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. 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

          1. 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

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. 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

              1. ok jetz hab ichs selber herausgefunden
                danke für den tipp mit limit
                für alles andere: danke für garnichts
                lg gerhard

                1. 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

                  --
                  X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                  X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
                  1. Hilfe definiere ich anders als du
                    ich arbeite jetzt weiter
                    mach was du willst
                    lg gerhard

                    1. 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

                      --
                      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                      X-Will-Answer-Email: No
                      X-Please-Search-Archive-First: Absolutely Yes
                      1. 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

                        --
                        "It's amazing I won. I was running against peace, prosperity, and incumbency."
                        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                        1. 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

                          1. 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

                            --
                            "It's amazing I won. I was running against peace, prosperity, and incumbency."
                            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                            1. 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

                              1. 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

                                --
                                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                                1. 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

              2. 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

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
    2. 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

  2. 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 !