2017-02-26 9 views
0

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.

+1

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. –

+0

@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

+0

. . Wie ich schon sagte, würden Beispieldaten und gewünschte Ergebnisse wirklich helfen zu erklären, was Sie versuchen zu tun. –

Antwort

Verwandte Themen