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

时间:2009-09-24 14:19:25

标签: sql mysql

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

我有一个包含四个字段ID,名称,国家/地区,描述的表格。查询按条件country = 'asia'返回。记录总数超过百。现在我需要的是,如果我在表格中的第23位有一个名字'test',那我怎么能在不使用限制和自动增量id的情况下得到第23位(auto id没有给出我使用条件的确切位置我的查询)

name不应包含重复记录。

我只是希望该位置通过另一个查询(用于分页)来检查。

mysql中是否有任何可用的函数来实现这一点而不使用限制?

我通过this得到了一些想法,但我无法通过答案获得我期望的mysql结果。

感谢。

1 个答案:

答案 0 :(得分:2)

由于SQL没有隐式“行位置”的概念,因此您应该通过对列或表达式上的行进行排序来定义行顺序。

这假设您的行位置由字段id标识(即稍后有id行的行。)

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