行我有這樣的結構:MySQL查詢枚舉取決於另一場
table1 table2 id_t1 id_t2 id_t2
現在,我需要表2中,但通過在單個查詢id_t2枚舉行。輸出的
實施例:
ennum id_t1 id_t2 1 1 1 2 2 1 3 3 1 1 4 2 2 5 2 4 6 1
通向與用於每個id_t2獨家索引列舉行。
我知道我必須使用變量(如@ennum),我已經能夠枚舉它們全局,但我還沒有找到正確的方法來做到這一點呢。
在此先感謝。
行我有這樣的結構:MySQL查詢枚舉取決於另一場
table1 table2 id_t1 id_t2 id_t2
現在,我需要表2中,但通過在單個查詢id_t2枚舉行。輸出的
實施例:
ennum id_t1 id_t2 1 1 1 2 2 1 3 3 1 1 4 2 2 5 2 4 6 1
通向與用於每個id_t2獨家索引列舉行。
我知道我必須使用變量(如@ennum),我已經能夠枚舉它們全局,但我還沒有找到正確的方法來做到這一點呢。
在此先感謝。
好,感謝@JW。我想我明白了:
對於這個在phpMyAdmin工作:
結果是:
SET @running1:=0;
SET @previous1:=0;
SELECT g.ennum,
g.id_t1,
g.id_t2
FROM
(
SELECT t.id_t1,
t.id_t2,
@running1:=if(@previous1=concat(t.id_t2),@running1,0) + 1 as ennum ,
@previous1:=concat(t.id_t2)
FROM TableName t
ORDER BY id_t2
) AS g
ORDER BY id_t2, ennum
試試這個,
SELECT g.ennum,
g.id_t1,
g.id_t2
FROM
(
SELECT t.id_t1,
t.id_t2,
@running1:=if(@previous1=concat(t.id_t2),@running1,0) + 1 as ennum ,
@previous1:=concat(t.id_t2)
FROM TableName t
) g
ORDER BY ID_T2, ennum
您的例子似乎並沒有包含必要得到輸出的所有數據。你能爲這個例子提供更多的輸入數據嗎?基本上,什麼是輸入和什麼是預期的輸出 – mvp 2013-02-20 09:36:04
對於我公佈的輸出,所需的輸入將簡單地爲: (id_t1,id_t2): (1,1),(2,1),(3,1), (4,2),(5,2),(6,1) – j4nSolo 2013-02-20 11:38:34