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