water: MySQL - nur letzte Zeile auslesen

Hallo,
ich habe eine Userliste in meiner Datenbank angelegt, unter anderem mit der Spalte ID, die über auto_increment läuft. Nun möchte ich die Anzahl meiner User ausgeben, dh. die letzte ID auslesen. Ich weiß, wie ich alle ID's auslese - aber wie beschränke ich die Ausgabe auf die letzte Zeile?

Vielen Dank.

  1. Du liest den ersten Datensatz aus und sortierst vorher in umgekehrter Reihenfolge.

    1. Du liest den ersten Datensatz aus und sortierst vorher in umgekehrter Reihenfolge.

      Das liefert die höchste ID, nicht aber die Anzahl der Datensätze.

      1. Das liefert die höchste ID, nicht aber die Anzahl der Datensätze.

        Das ist mir klar, aber es ist genau das, was der OP haben will, die höchste ID. Das er nur per count() an die verlässliche Anzahl kommt, weiss er ja jetzt.

        Da du aber nicht wissen kannst, ob der OP dafür sorgt, dass die IDs immer fortlaufend und ohne Lücken sind, kannst du auch nicht wissen, ob die höchste ID nicht der Anzahl der User entspricht.

        1. Das liefert die höchste ID, nicht aber die Anzahl der Datensätze.

          Das ist mir klar, aber es ist genau das, was der OP haben will, die höchste ID. Das er nur per count() an die verlässliche Anzahl kommt, weiss er ja jetzt.

          Ja, jetzt :)

          Da du aber nicht wissen kannst, ob der OP dafür sorgt, dass die IDs immer fortlaufend und ohne Lücken sind, kannst du auch nicht wissen, ob die höchste ID nicht der Anzahl der User entspricht.

          Wenn der OP so eine Frage stellt, ist davon auszugehen, dass das Wissen um relationale Datenbanken sehr beschränkt ist. Ich halte es daher angebracht die schlechte Lösung gar nicht zu posten (oder nur gemeinsam mit der richtigen Lösung, wie Fred Furunkelstein das getan hat). Auch wenn man idR. Unmut erntet, weil man ja nicht das Problem löst sondern drumherum redet, das ist genau eines dieser Beispiele wo ganz klar wird, dass das eigentliche Problem ein viel größeres ist und man dieses Problem an der Wurzel lösen sollte, auch wenn das dem OP aktuell grade nicht gefällt.

          1. Ich halte es daher angebracht die schlechte Lösung gar nicht zu posten (oder nur gemeinsam mit der richtigen Lösung,...

            Ich habe exakt die Frage des OP beantwortet, die für mich eindeutig war:

            Ich weiß, wie ich alle ID's auslese - aber wie beschränke ich die Ausgabe auf die letzte Zeile?

            Natürlich ist es möglich (sogar wahrscheinlich), dass der OP damit keinen Erfolg hat, aber grundsätzlich anzunehmen, dass der OP nicht weiss, was er tut, halte ich nicht für richtig.

            1. Natürlich ist es möglich (sogar wahrscheinlich), dass der OP damit keinen Erfolg hat, aber grundsätzlich anzunehmen, dass der OP nicht weiss, was er tut, halte ich nicht für richtig.

              Das Grundsätzlich anzunehmen ist natürlich nicht richtig - in diesem Fall ist es aber angesichts der trivialen Aufgabenstellung naheliegen, dass der OP nicht weiß, was er tut.

  2. Du lässt Dir genau die erste Zeile ausgeben nach dem Du die Tabelle umgekehrt nach der ID sortiert hast:

    SELECT id, nameFROMkundenwhere 1 ORDER BYid DESC LIMIT 1;

    Das hat aber mit der Anzahl der User nichts zu tun. Die bekommst Du mit:

    SELECT COUNT(id) AS anzahlFROMkundenwheregeloescht=0;