我使用的是datatables jquery插件。
我只想在每次查询数据库时拉出显示所需的记录,因为表中可能会有数以百计的记录。因此,由于分页,而不是这样做并调用表中的每条记录,并且一次只显示一定数量的记录。
<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中,以便每次只获得一定数量的记录?
发布于 2012-02-04 04:48:33
您需要将起始点和每个“页”的记录数发送到数据库,并让它只返回这些记录。我不知道您使用的是什么数据库,但这里有一个查询MS SQL Server (2005+)的示例:
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的版本:
SELECT user_id, first_name, last_name
FROM users
ORDER BY last_name, first_name
LIMIT 999, 10 /* offset is zero-indexed in mysql */https://stackoverflow.com/questions/9135072
复制相似问题