我有这个结构:
table1 table2 id_t1 id_t2 id_t2
现在,我需要枚举table2中的行,但需要在单个查询中枚举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)并且我能够在全局范围内枚举它们,但我还没有找到正确的方法来实现它。
提前致谢。
答案 0 :(得分: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
) g
ORDER BY ID_T2, ennum
答案 1 :(得分:0)
好的,谢谢@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