MySQL:如何创建模糊限制?

MySQL:如何创建模糊限制?,mysql,sql,limit,offset,Mysql,Sql,Limit,Offset,我需要使用LIMIT来返回5条记录,每次调用函数时都会以偏移量递增,但我想使用模糊限制 此模糊限制应受到一列A的影响,整个查询按列A升序排序 这意味着,虽然限制为5,但如果在列A中遇到相同值的多个实例,则应临时增加限制以包含所有记录,直到该相同值结束 它还应该返回某种类型的指针,表示限制暂时增加了这么多,因此可以相应地发送下一个偏移量 在下面的示例中,如果限制落在记录编号5上,则应包括记录7之前的所有限制。(因为3在7之前具有相同的值。) 我们怎样才能创造这样的限制? 如果有人能为我创建一个查询

我需要使用LIMIT来返回5条记录,每次调用函数时都会以偏移量递增,但我想使用模糊限制

此模糊限制应受到一列A的影响,整个查询按列A升序排序

这意味着,虽然限制为5,但如果在列A中遇到相同值的多个实例,则应临时增加限制以包含所有记录,直到该相同值结束

它还应该返回某种类型的指针,表示限制暂时增加了这么多,因此可以相应地发送下一个偏移量

在下面的示例中,如果限制落在记录编号5上,则应包括记录7之前的所有限制。(因为3在7之前具有相同的值。)

我们怎样才能创造这样的限制? 如果有人能为我创建一个查询,我会非常感激,因为我是MySQL新手

我目前有一个正常的查询:

select table1.colA, table1.colB, table1.colC, table1.colD, table2.colD, table2.colE from table1 INNER JOIN table2 on table1.colD = table2.colD ORDER BY table1.colA ASC

在MySQL中,您可以这样做:

select colA
from t cross join
     (select max(colA) as maxcolA
      from (select colA
            from t
            order by colA
            limit 5
           ) t
      ) const
where colA <= maxColA
order by colA

但是,MySQL不允许对子句中的
中使用的子查询进行限制。

您需要根据所讨论的列进行分组,从分组查询中选择前5位,然后将原始表加入该子查询。MySQL的限制值不接受动态值(例如sql变量、表达式等)。
select colA
from t cross join
     (select max(colA) as maxcolA
      from (select colA
            from t
            order by colA
            limit 5
           ) t
      ) const
where colA <= maxColA
order by colA
select colA
from t
where colA in (select colA from t order by colA limit 5)
order by colA