行我有这样的结构: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