Schorsch: MySQL: Gibt es ein Zähler?

Guten Tag

"SELECT NUMMER 'blah', 'bli', 'bluh' FROM 'tabelle'
ORDER BY 'blah' LIMIT 55 10"

Ich hole in einer Tabelle 10 Datensätze raus.
Zwar Datensatz Nummer 55 bis Datensatz Nummer 65.

Gibt es in MySQL eine Konstante, welche mir in der Ergebnismenge für jeden Eintrag die NUMMER des Datensatzes ausgibt?
(Nicht die ID, die Nummer die fortlaufende Zahl in der Ergebnismenge.)

Gruss
Schorsch

  1. yo,

    Gibt es in MySQL eine Konstante, welche mir in der Ergebnismenge für jeden Eintrag die NUMMER des Datensatzes ausgibt?
    (Nicht die ID, die Nummer die fortlaufende Zahl in der Ergebnismenge.)

    eine konstante nicht, aber du kannst unter mysql variablen deklarieren, die du dann in die abfrage mit einbaust und jedesmal um eins erhöhst. genaueres findest du in der mysql online doku.

    Ilja

    1. Salut Ilja

      Gibt es in MySQL eine Konstante, welche mir in der Ergebnismenge für jeden Eintrag die NUMMER des Datensatzes ausgibt?

      eine konstante nicht, aber du kannst unter mysql variablen deklarieren, die du dann in die abfrage mit einbaust und jedesmal um eins erhöhst.

      Daran hab ich auch schon gedacht und die Doku danach abgesucht...
      Hast du mir noch einen Hinweis, wo suchen?

      Muss ich da eine Funkton bauen...
      Oder komme ich irgendwie mit SUM() oder GROUP() weiter?
      Noch nicht vorstellen kann ich mir, wie ich der DB sagen soll:
      "Erhöhe pro Datensatz um 1"

      Gruss
      Schorsch

      1. Hi,

        Gibt es in MySQL eine Konstante, welche mir in der Ergebnismenge für jeden Eintrag die NUMMER des Datensatzes ausgibt?

        Ne Konstante wäre schlecht, die wüerde sich ja nie ändern (deshalb Konstante)
        Aber warum machst du nicht einfach mit der jeweiligen Software die Ausgabe?
        Im Normalfall liest man die Datensätze aus und verarbeitet sie dann per for() bzw. foreach() (Oder sonst ne Schleife, je nach Programmiersprache). Dann hast du entweder deinen Zähler oder kannst den Innerhalb der Schleife immer erhöhen. Und schon hast du deinen gewünschten Wert.

        Wenn du allerdings in MySQL direkt Arbeiten willst, fällt mir keine Lösung ein, damit hab ich mich auch noch nie befasst. Bisher immer nur mit ner Software drauf zugegriffen.

        1. Salut

          Im Normalfall liest man die Datensätze aus und verarbeitet sie dann per for() bzw. foreach() (Oder sonst ne Schleife, je nach Programmiersprache).

          Damit lässt es sich lösen.
          Ich bin aber an einer Lösung auf der DB Ebene interessiert.

          Gruss
          Schorsch

          1. Ich bin aber an einer Lösung auf der DB Ebene interessiert.

            Also, soweit ich weiß, gibt es sowas nicht.

            Ansonsten kannst Du das Problem mit einer Variable lösen:
            <?php
            $start = 55; //z.B.
            $limit = 10; //z.B.
            $sql = mysql_query("SELECT * FROM $table LIMIT $start,$limit");
            $x = 0;
            while ($tmp = mysql_fetch_row($sql)) {
              $x++;
              echo $tmp[1];
              echo $tmp[2];
              ...
            }
            ?>

            1. Besten Dank!

              Ansonsten kannst Du das Problem mit einer Variable lösen:
              <?php
              $start = 55; //z.B.
              $limit = 10; //z.B.
              $sql = mysql_query("SELECT * FROM $table LIMIT $start,$limit");
              $x = 0;
              while ($tmp = mysql_fetch_row($sql)) {
                $x++;
                echo $tmp[1];
                echo $tmp[2];
                ...
              }
              ?>

              Wenn die DB das wirklich nicht fertigbringt, werde ich es wohl so lösen müssen.

              Gruss
              Schorsch

              1. Hi,

                Wenn die DB das wirklich nicht fertigbringt, werde ich es wohl so lösen müssen.

                Wenn es die DB können muss, schonmal dran gedacht, die Datenbank zu wechseln?

      2. yo,

        Daran hab ich auch schon gedacht und die Doku danach abgesucht...
        Hast du mir noch einen Hinweis, wo suchen?

        SET @var_name = 0;
        SELECT spalten..., @var_name = var_name + 1
        FROM tabelle...

        http://dev.mysql.com/doc/refman/5.0/en/variables.html

        Ilja

        1. Salut

          SET @var_name = 0;
          SELECT spalten..., @var_name = var_name + 1
          FROM tabelle...

          SET @var_name = 0;
          SELECT spalte1, @var_name = @var_name+1 AS counter
          FROM tabelle

          Liefert in der Spalte counter stehts 0.
          Scheint nicht hochzuzählen...

          Gruss
          Schorsch

          1. echo $begrüßung;

            SET @var_name = 0;
            SELECT spalte1, @var_name = @var_name+1 AS counter
            FROM tabelle

            Liefert in der Spalte counter stehts 0.
            Scheint nicht hochzuzählen...

            Folge Iljas Link und du wirst seinen Tippfehler finden.

            echo "$verabschiedung $name";

            1. Salve

              Folge Iljas Link und du wirst seinen Tippfehler finden.

              Tatsächlich. Cool! Merci, da gibts noch so :

              Gruss
              Schorsch

  2. (Nicht die ID, die Nummer die fortlaufende Zahl in der Ergebnismenge.)

    Also soll 55 = 1, 56 = 2, 65 = 11 usw. sein. Und wenn Du die DS 65 - 75 ausgibst, 65 = 1, 66 = 2, 75 = 11. Sehe ich das richtig?

    1. Also soll 55 = 1, 56 = 2, 65 = 11 usw. sein. Und wenn Du die DS 65 - 75 ausgibst, 65 = 1, 66 = 2, 75 = 11. Sehe ich das richtig?

      Genau!