从 mysql table 子查询中计算行号
Count row number from a mysql table subquery
我有一个 table department_courses
结构如下:
id department_id name
-- ------------- -----
1 11 Abcd
2 11 Bghg
3 11 Lopps
4 13 Abvgf
所以从这个table我需要统计子查询的位置。我的意思是说,name
Lopps
for department_id
的位置是 3 。如何在 mysql 查询中得到这个?
尝试:
select row_num
from (
select t.*, @r := @r + 1 row_num
from department_courses t,
(select @r := 0) r
) x
where x.name = 'Lopps'
x.department_id = 3
如果您只需要对一行执行此操作,那么单个查询会更简单:
select count(*)
from department_courses dc
where dc.id <= (select dc2.id
from department_courses dc2
where dc2.name = 'Lopps'
);
如果您想为所有行分配一个行号,那么变量可能是更好的方法。
我有一个 table department_courses
结构如下:
id department_id name
-- ------------- -----
1 11 Abcd
2 11 Bghg
3 11 Lopps
4 13 Abvgf
所以从这个table我需要统计子查询的位置。我的意思是说,name
Lopps
for department_id
的位置是 3 。如何在 mysql 查询中得到这个?
尝试:
select row_num
from (
select t.*, @r := @r + 1 row_num
from department_courses t,
(select @r := 0) r
) x
where x.name = 'Lopps'
x.department_id = 3
如果您只需要对一行执行此操作,那么单个查询会更简单:
select count(*)
from department_courses dc
where dc.id <= (select dc2.id
from department_courses dc2
where dc2.name = 'Lopps'
);
如果您想为所有行分配一个行号,那么变量可能是更好的方法。