如何在MYSQL查询中的其他选择中进行选择? 像这样的东西
.videoToCanvas()
我想知道id = 6的记录数,如果它是第一行,第二行或第三行
请任何人都可以帮助我。
答案 0 :(得分:1)
如果您的查询包含过滤器where a.id = 6
,则id = 6的行将始终是结果集的第一行。
我正在解释你的问题意思是:“如果我按id升序排序,那么行号是id = 6的行将开启”。如果是这样,您可以使用简单的聚合:
SELECT COUNT(*)
FROM main m
WHERE m.id <= 6;
您的查询似乎受枚举所有行的启发。你也可以这个版本:
select m.*
from (select m.*, (@rn := @rn + 1) as rn
from main m cross join
(select @rn := 0) params
order by id
) m
where id = 6;
第一个版本应该更有效率,特别是id
上的索引。