首页 > 解决方案 > 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;

标签: mysqlrestapiflask

解决方案


您可以使用limit和 offset 来检索有限的数据集

SELECT column1, column2, ...
FROM table_name
LIMIT 10 offset 5;

推荐阅读