Hier ist eine Charakterisierung von dem, was ich tun möchte. In menschlicher Hinsicht: Wenn rank = 2 in meiner Quelltabelle (my_table) möchte ich meine Spalte namens rank2 inkrementieren (++) und ich möchte eine andere Spalte inkrementieren (-). Insbesondere möchte ich, dass die Spalte rank1 um eins erhöht wird.Wie man zwei Variablen in einer 'Auswahl'-Spalte ändert?
set @rank1 = 0 ;
set @rank2 = 0 ;
-- ...
SELECT
create_date,
if(rank=1,@rank1:= @rank1+1,@rank1) rank1,
if(rank=2,(@rank2:[email protected]+1 and @rank1:[email protected]),@rank2) rank2
from my_table;
Die Spalten ich in my_table Pflege sind
create_date datetime,
rank int
Wenn es darauf ankommt, meine Select-Anweisung wird noch einige 'Rang' Spalten (rank3, rank4, etc.) erstellen - I Überlasse es der Einfachheit halber.
Beispieldaten und die gewünschten Ergebnisse würden wirklich klären, was Sie tun wollen. Ihr Code scheint auch wenig mit Ihrer Beschreibung zu tun zu haben. –
@GordonLinoff, Grundsätzlich, wenn ich einen Rang 2 sehe, bedeutet das, dass meine Entity von 1 nach 2 gegangen ist, und ich zähle jeden Rang. Ich meine also Rang 2 ++, Rang 1 - (weil ich 1 weniger Rang 1 und 1 Rang 2 mehr habe). – ColinMac
. . Wie ich schon sagte, würden Beispieldaten und gewünschte Ergebnisse wirklich helfen zu erklären, was Sie versuchen zu tun. –