作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用数据表 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 里面,每次只获取一定数量的记录?
最佳答案
您需要将起点和每“页”的记录数发送到数据库,并让它只返回这些记录。我不知道您使用的是什么数据库,但这里有一个针对 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 */
关于sql - 如何仅从查询中提取显示所需的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135072/
我是一名优秀的程序员,十分优秀!