Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Position abfragen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Position abfragen

    Also so schau meine Tabelle aus



    Jetzt möchte ich zb wissen in welcher Position die userid 1116 ist.

    Wenn ich das selber von oben nach unten runterzählen würde wäre die 1116 auf Position NR> 6

    Habe die Frage schon in PHP forum gestellt. Nur leider keine Antwort.
    Also nochmal hier.


  • #2
    solange du nicht sortierst, hat kein eintrag eine position.

    wenn du die position bestimmen willst, selectiere alle datensätze, die im zu sortierenden punkt gleich und mehr (bzw. weniger) als dein gesuchter datensatz haben. die anzahl der ds ist die position des ds.

    ohne deine tabelle kann man nichts konkretes sagen.

    Kommentar


    • #3
      btw: cross-post zu http://www.phpfriend.de/forum/ftopic47769.html

      Kommentar


      • #4
        Die Tabelle ist schon sortiert nach Punkten.
        Sonst wäre es ja kein Problem

        Kommentar


        • #5
          Schau Dir mal http://dev.mysql.com/doc/maxdb/en/0a...e4/content.htm an.
          Wenn Du einen bestimmten Datensatz selektierst, ist aufgrund der (Index.)Struktur nicht automatisch bekannt, wieviele Datensätze davor oder danach liegen.
          Die Datensätze im Ergebnisraum können allerdings durchgezählt werden. Einfach einen Zähler mitlaufen lassen.

          Kommentar


          • #6
            Hab jetzt einfach ein Zähler mitlaufen lassen.
            Schade das es keine direkte abfrage dafür gibt.
            Eigentlich machbar weil count gibt es ja auch

            Kommentar


            • #7
              Code:
              set @i=0;
              select feld1,feld2,feld3,(@i:=@i+1) as zeilennummer from tabelle
              (Fügt einem select eine zeilennummer hinzu)

              möchte man jetzt den platz nummer 999 ermitteln, benutzt man having:
              Code:
              set @i=0;
              select feld1,feld2,feld3,(@i:=@i+1) as zeilennummer from tabelle having zeilennummer=999
              achtung: bei having holt man erst alle daten, die es zu holen gibt. danach wird wiederum aussortiert.
              deswegen ist in der ergebniszeile auch eine andere zeilennummer angegeben, als die, die man haben möchte - @i wird ja weiter hochgezählt. es wird das höchste @i im ergebnis angegeben, das es vor having gab, plus 1 (nämlich das i, was sich durch die auswahl dieses eintrags ergab).

              Kommentar


              • #8
                Arrakaij, kann es sein, dass du Archäologe bist?
                Crashkurs zum Thema Rechtschreibung: normalerweise (normaler weise oder normaler weiße), Standard (Standart), eben (ebend)

                Kommentar


                • #9
                  Nein. Dieser Beitrag tauchte in einer liste unten auf. als "ähnlicher" beitrag zu meinem socket-problem. die ähnlichkeit ist verblüffend ^^
                  und dann ging die erste seite auf. von erledigt keine spur, aufs datum nicht geguckt und zack! hast du das problem.

                  Kommentar


                  • #10
                    Dass da überall „Gast“ steht, kann einem aber schon auffallen.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar

                    Lädt...
                    X