首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从查询中仅拉取需要显示的记录?

问如何从查询中仅拉取需要显示的记录?
EN

Stack Overflow用户
提问于 2012-02-04 04:28:08
回答 1查看 536关注 0票数 2

我使用的是datatables jquery插件。

我只想在每次查询数据库时拉出显示所需的记录,因为表中可能会有数以百计的记录。因此,由于分页,而不是这样做并调用表中的每条记录,并且一次只显示一定数量的记录。

代码语言:javascript
复制
<cfquery name="get_users" datasource="dsn">
    select user_id, first_name, last_name
    from users
</cfquery>

<cfloop query="get_users" startrow="#startrow#" endrow="#endrow#">
    ...
</cfloop>

有没有一种方法可以把startrow和endrow放在cfquery标记中,或者以某种方式放在sql中,以便每次只获得一定数量的记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-04 04:48:33

您需要将起始点和每个“页”的记录数发送到数据库,并让它只返回这些记录。我不知道您使用的是什么数据库,但这里有一个查询MS SQL Server (2005+)的示例:

代码语言:javascript
复制
SELECT user_id, first_name, last_name
FROM (
  SELECT ROW_NUMBER() OVER(
    ORDER BY last_name, first_name 
  ) AS rownum, user_id, first_name, last_name
  FROM users
) AS users_page
WHERE rownum >= 1000 AND rownum <= 1010
ORDER BY last_name, first_name

这将为您提供从1000到1010的记录页面。

下面是mysql的版本:

代码语言:javascript
复制
SELECT user_id, first_name, last_name
FROM users
ORDER BY last_name, first_name
LIMIT 999, 10 /* offset is zero-indexed in mysql */
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9135072

复制
相关文章

相似问题

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