首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使极限偏移量动态仅使用(我的)SQL

问如何使极限偏移量动态仅使用(我的)SQL
EN

Stack Overflow用户
提问于 2011-05-03 16:30:43
回答 1查看 13.5K关注 0票数 6

这个代码不起作用

代码语言:javascript
复制
select pagenr into @offset from pages where id = 3;
select * from table1 limit @offset*10, 10;

为了使这类代码工作,我需要使用什么SQLcode?

只使用 SQL!

请注意,

代码语言:javascript
复制
SET SQL_SELECT_LIMIT = @count 

不起作用,因为我主要关心的是偏移量,而不是这样的限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-03 18:02:24

来自MySQL 5.5规范:

-- LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数值参数,它们都必须是非负整数常量,但有以下例外:

在准备好的语句中,可以使用markers.

  • Within存储程序的占位符指定LIMIT参数,可以使用整数值例程参数或局部变量(如MySQL 5.5.6.

)指定LIMIT参数。

因此,在存储过程中,以下内容可以工作:

代码语言:javascript
复制
DECLARE offset bigint
SELECT pagenr * 10 INTO offset FROM pages where id = 3;
SELECT * FROM table1 LIMIT offset, 10;

否则,您将需要预先计算值并通过查询传递它。您应该已经知道了页面大小和页码,所以这应该不难。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5872667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档