Da ich neu bei MySQL bin, kann diese Frage albern sein. Wie kann ich den Unterschied zwischen aufeinanderfolgenden Zeilen finden?
Beispiel:
Eine Tabelle (tableName = 'Abc') enthält wie folgt eine einzelne Zeile:
Hier möchte ich die Ausgabe als erhalten,
%Vor%Wie finde ich den Unterschied ohne Index (primary oder Auto_increment)?
Verwenden Sie benutzerdefinierte Variablen:
%Vor%Sie müssen die erste Zeile für Ihren Fall verwerfen.
Wenn die Tabelle die Felder value
und diff
enthält, können Sie das Feld diff
mit:
Die Verwendung von IF
ist die einzige Möglichkeit, zu beide set diff
und die Variable @prevValue
zu aktualisieren.
Es wäre am besten, dies außerhalb der Datenbank zu tun, indem Sie die vorherige Zeile verfolgen. Hier ist ein Code (hoffentlich ist mein PHP nicht zu rostig):
%Vor%Wenn Sie es aus irgendeinem Grund innerhalb der db tun müssen, dann wäre es wahrscheinlich am besten, eine gespeicherte Prozedur zu erstellen, die im Grunde dasselbe tut: eine Variable mit dem Wert 0 instanziieren, die Differenz für jede Zeile und diese Variable melden , dann setze die Variable auf den Zeilenwert.
Bearbeitet, um eine Order by-Klausel hinzuzufügen, wie von John Pick
erwähntTags und Links mysql database-table