mysql - API 一次应该只返回 n 行
问题描述
我是 API 构建的新手。我有一个要求。我的 API 显示书籍详细信息,如果符合条件的书籍数量超过 25,API 一次应该只返回 25 本书,并支持检索下一组 25 本书直到检索到所有书籍的方式。
我也需要一个忠告。我有 10 个表,我需要通过从每个表中获取一些数据来加入这些表,并将合并的结果返回给 API 调用。我认为一个查询中的 10 个连接会占用大量内存,并且可能不会给出最好的结果。
我还将在各种表格的某些列上设置一些过滤器。我应该为单个表单独获取行吗?同样在 API 返回调用中,某些键将具有多个数据,但此查询未显示以下是我正在使用的查询:
SELECT b.title,a.name,b.media_type,l.code,bsub.name,bs.name,f.url FROM books_book b
inner join books_book_authors ba on b.id=ba.book_id
inner join books_author a on a.id=ba.author_id
inner join books_bookshelves bss on ba.book_id=bss.book_id
inner join books_bookshelf bs on bss.bookshelf=bs.id
inner join books_book_subjects bsubs on bsubs.book_id=ba.book_id
inner join books_subject bsub on bsubs.subject_id=bsub.id
inner join books_format f on f.book_id=ba.book_id
inner join books_languages ls on ls.book_id=ba.book_id
inner join books_language l on ls.language_id=l.id
order by b.download_count desc;
解决方案
您可以使用limit和 offset 来检索有限的数据集
SELECT column1, column2, ...
FROM table_name
LIMIT 10 offset 5;
推荐阅读
- javascript - 使用 ontouchmove 只触发一次
- c - 为什么 web 服务器应该在发送响应之前清除套接字接收缓冲区?
- angularjs - AngularJS img ng-src 绑定不起作用
- python - 如何在 AWS Lambda 中部署庞大的 Python 依赖项和 ML 模型
- html - Jenkins HTML 报告在 Log 中成功发布,但未显示在 Jenkins 构建页面左侧菜单区域
- java - 将文本文件中的特定数据行导入不同的数组
- java - 升级到 1.43 版本后无法运行 JMockit 测试
- bash - 轻松检查 Bash 语句的布尔值
- c# - Send stringified json to serilog as structured data
- r - Keep rows that has specific endings