我做3個查詢重新安排我的表縮短SQL查詢
SELECT @i:=0;
UPDATE imagedata SET imagedata.rank = 0;
UPDATE imagedata SET imagedata.rank = (SELECT @i:[email protected]+1) WHERE imagedata.kategorieID = 1;
的我執行從上到下的行。
問:還有一個更短的方法來做到這一點?
THX所有反饋.. 但我有一個目前存在的愛迪爾現在: 不知怎的,我必須與「ID(主鍵)」 collumn「連接」的「kategorieID」 所以我需要這兩個信息存儲到 「等級」 collumn格式,如:
CXXX
C =類別數(0〜4) XXX = ID(1 ... N)..獨一無二的!
爲例:輸出:
rank
+------+
+ 1001 +
+ 1002 +
+ 1003 +
+ ... +
+ 1018 +
+ ... +
+ 2001 +
+ 2002 +
+ 1019 +
+ 1020 +
到目前爲止,我這樣做是這樣的:
UPDATE imagedata SET imagedata.rank = (SELECT CONCAT(kategorieID,"",LPAD(id,3,'0'))) WHERE id=88;
一旦 「等級」 被數據填充它給我的abillity換2組的ID。
因此,我必須: 1)得到 「等級」 ID_1的collumn和ID_2 2)獲得該串爲例的子串( 'XXX'):( 「004」 .. 「012」) 3) ID_1「等級」和ID_2「等級」的交換子
SELECT @ix1:=SUBSTRING(rank, -3) FROM imagedata WHERE id=88;
SELECT @ix2:=SUBSTRING(rank, -3) FROM imagedata WHERE id=83;
..我知道如何得到它,但不知道如何交換呢?
我可以備份一個步驟並詢問爲什麼您需要這樣做嗎? – 2012-01-11 21:41:00
第二個查詢可能可以省略。 – TimWolla 2012-01-11 21:44:39
@TimWolla,我也這麼認爲,但後來他意識到他基本上想要將所有'rank's設置爲0,除了那些'kategorieID'爲1的應該遞增。 – 2012-01-11 21:47:09