Ansatz gesucht: Ergebnisse an einem Stück

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ansatz gesucht: Ergebnisse an einem Stück

    Hallo zusammen,

    ich habe ein kleines Problem und ich finde irgendwie keinen Ansatz.

    Nehmen wir uns eine Tabelle, die eine fortlaufende Id und noch ein 0/1 Flag hat.

    Nun möchte ich eine variabel große Gruppe (je nach Bedarf) von fortlaufenden Ids haben, bei denen das besagte Flag auf 0 steht.

    Hat da vielleicht jemand eine Idee für mich, wie man soetwas angehen könnte?

    Vielen dank im Voraus
    signed oder unsigned... das ist hier die Frage

  • #2
    Re: Ansatz gesucht: Ergebnisse an einem Stück

    ähm... lol? Fangfrage?...

    SELECT id FROM tabelle WHERE flag = 0 ORDER BY id LIMIT <anzahl>;

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Nein

      Mein Problem ist, dass ich fortlaufende IDs brauche und wirklich nur einen "Block" haben will.

      bei einem

      SELECT id FROM tabelle WHERE flag = 0 ORDER BY id LIMIT <anzahl>;

      könnte ich

      1,5,8,24,27,98 zurückbekommen.

      ich will aber die Tabelle durchsuchen, wo zusammenhängende ids das flag = 0 haben, sodass ich

      147,148,149,150,151... zurückbekomme
      signed oder unsigned... das ist hier die Frage

      Kommentar


      • #4
        Und wozu?
        Das geht bestimmt irgendwie, dürfte von der Performance her aber wohl an eine schleimige Schnecke ran reichen...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von ghostgambler
          Das geht bestimmt irgendwie, dürfte von der Performance her aber wohl an eine schleimige Schnecke ran reichen...
          Das ist mir wohl bewusst. Das Problem ist, dass ich diese fortlaufenden Ids leider bei einer Vergabe benötige. Wenn nötig auch als schleimige Schnecke.

          Nur bin ich noch dabei einen wirklichen Ansatz zu finden.
          signed oder unsigned... das ist hier die Frage

          Kommentar


          • #6
            Was möchtest du denn vergeben? Es wird sicher eine andere, bessere Lösung geben!

            Kommentar


            • #7
              hm... also es würde denke ich mit Subselect gehen:

              Code:
              SELECT a.id FROM tabelle a WHERE (SELECT COUNT(*) FROM tabelle b
              WHERE b.id > a.id AND b.id < a.id+$anzahl-1) = $anzahl-1 ORDER BY a.id LIMIT 1
              Damit solltest du die erste von den IDs zurück kriegen und kannst den Rest ja dann ausrechnen

              Aber das ist ein Correlated Subquery... die sind in mysql sehr böse, für den live-Betrieb rate ich dringend davon ab!

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Ja, vielen dank, damit bin ich auf dem richtigen weg
                signed oder unsigned... das ist hier die Frage

                Kommentar

                Lädt...
                X