Php 获取有序Mysql查询中的第i到第j行

Php 获取有序Mysql查询中的第i到第j行,php,mysql,sql,select,Php,Mysql,Sql,Select,假设我有这样一个问题: SELECT * FROM t WHERE j = k ORDER BY l 有没有一种方法可以让查询只返回根据ORDER BY语句排列的第20到40条记录,而不是返回ORDER BY语句排列的所有行?SELECT*FROM t t其中j=k ORDER BY l LIMIT 20 OFFSET 20 limit表示只需要20行,offset表示不需要前20行 请记住,当偏移量值非常大时,您的查询速度会非常慢,因为sql server需要扫描第一行以将+行返回给您。选择

假设我有这样一个问题:

SELECT * FROM t WHERE j = k ORDER BY l

有没有一种方法可以让查询只返回根据ORDER BY语句排列的第20到40条记录,而不是返回ORDER BY语句排列的所有行?

SELECT*FROM t t其中j=k ORDER BY l LIMIT 20 OFFSET 20

limit表示只需要20行,offset表示不需要前20行


请记住,当偏移量值非常大时,您的查询速度会非常慢,因为sql server需要扫描第一行
以将
+
行返回给您。

选择*从t开始,其中j=k按l顺序限制20偏移量20

limit表示只需要20行,offset表示不需要前20行

请记住,当偏移量值非常大时,您的查询将非常慢,因为sql server需要扫描第一行
,才能将
+
行返回给您。

所以

所以

限制20(第二个),从偏移量20开始,第一个

限制20(第二个),从第一个偏移量20开始。

您搜索过吗

LIMIT
子句可用于约束返回的行数 通过
选择
语句<代码>限制
接受一个或两个数值参数, 必须都是非负整数常量(使用 编写的声明)

对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0(不是1)

为了与PostgreSQL兼容,MySQL还支持
限制
行计数
偏移量
偏移量
语法

你查过了吗

LIMIT
子句可用于约束返回的行数 通过
选择
语句<代码>限制
接受一个或两个数值参数, 必须都是非负整数常量(使用 编写的声明)

对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0(不是1)

为了与PostgreSQL兼容,MySQL还支持
限制
行计数
偏移量
偏移量
语法

注:

  • 偏移量是从零开始的,因此19=从第20行开始
  • 在20和40之间(含20和40)有21行

注:

  • 偏移量是从零开始的,因此19=从第20行开始
  • 在20和40之间(含20和40)有21行
    • 有解决方案: 从t中选择*其中j=k按l限值21、20排序;(21是行数,20是起始行,因此您将检索第20到第40行(如果存在)

      有一个解决方案: 从t中选择*其中j=k按l限值21、20排序;(21是行数,20是起始行,因此您将检索第20到第40行(如果存在)

      sample: SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15
      
      SELECT * FROM t WHERE j = k ORDER BY l LIMIT 20,20; #retrieve rows 20-40
      
      SELECT * FROM t WHERE j = k ORDER BY l LIMIT 20, 20
      
      SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15
      
      SELECT * FROM t WHERE j = k ORDER BY l LIMIT 19,21