Sql 如何在不使用限制的情况下从表中获取第n行位置?

Sql 如何在不使用限制的情况下从表中获取第n行位置?,sql,mysql,Sql,Mysql,如何在不使用限制的情况下从表中获取第n行位置 我有一个表,有四个字段id、名称、国家/地区、描述。查询按条件country='asia'返回。记录总数超过一百条。现在我需要的是,如果我在表中的第23个位置有一个名称“test”,那么我如何在不使用limit和auto increment id的情况下获得第23个位置auto id不会给出我在查询中使用条件的确切位置 名称不应包含重复记录 我只想让这个职位检查另一个分页查询 mysql中是否有任何函数可以在没有使用限制的情况下实现这一点 我已经有了

如何在不使用限制的情况下从表中获取第n行位置

我有一个表,有四个字段id、名称、国家/地区、描述。查询按条件country='asia'返回。记录总数超过一百条。现在我需要的是,如果我在表中的第23个位置有一个名称“test”,那么我如何在不使用limit和auto increment id的情况下获得第23个位置auto id不会给出我在查询中使用条件的确切位置

名称不应包含重复记录

我只想让这个职位检查另一个分页查询

mysql中是否有任何函数可以在没有使用限制的情况下实现这一点

我已经有了一些想法,但我无法通过答案得到我预期的结果

谢谢。

因为SQL没有隐式行位置的概念,所以应该通过对列或表达式上的行进行排序来定义行顺序

这假设您的行位置由字段id i标识。Eid较高的行稍后出现

SELECT  (
        SELECT  COUNT(*)
        FROM    mytable mi
        WHERE   country = 'asia'
                AND mi.id <= mo.id
        )
FROM    mytable mo
WHERE   country = 'asia'
        AND name = 'test'