Abfrage, um den Unterschied zwischen aufeinanderfolgenden Zeilen in Mysql zu finden

8

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:

%Vor%

Hier möchte ich die Ausgabe als erhalten,

%Vor%

Wie finde ich den Unterschied ohne Index (primary oder Auto_increment)?

    
Deepak Mani 14.03.2012, 06:09
quelle

3 Antworten

9

Ein Self-Join ist eine Möglichkeit, aufeinanderfolgende Zeilen zu vergleichen:

%Vor%     
John Pick 14.03.2012 06:20
quelle
7

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:

festlegen %Vor%

Die Verwendung von IF ist die einzige Möglichkeit, zu beide set diff und die Variable @prevValue zu aktualisieren.

    
Roger Dueck 09.08.2013 18:12
quelle
4

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ähnt     
Ilion 14.03.2012 06:17
quelle

Tags und Links