如何在MYSQL查询中的其他选择中进行选择?

时间:2017-04-30 21:33:48

标签: java php mysql mysqli

如何在MYSQL查询中的其他选择中进行选择? 像这样的东西

.videoToCanvas()

我想知道id = 6的记录数,如果它是第一行,第二行或第三行

请任何人都可以帮助我。

1 个答案:

答案 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上的索引。