首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SQL查询中按页设置分页?

如何在SQL查询中按页设置分页?
EN

Stack Overflow用户
提问于 2020-03-05 17:45:08
回答 1查看 267关注 0票数 0

如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但它在我的代码中不起作用,我使用SQL raw-query而不是ORM直接获取数据。我认为另一种方法是使用SQL查询限制或偏移量来设置分页,但当我搜索下一页时,我对url-端点一无所知。

代码语言:javascript
运行
复制
class Order_ListAPIView(APIView):

    def get(self,request,format=None):

        if request.method == 'GET':
            cur,conn = connection()
            order_query = ''' SELECT * FROM orders'''
            order_detail_query = ''' SELECT * FROM order_details'''

            with conn.cursor(MySQLdb.cursors.DictCursor) as cursor:

                cursor.execute(order_query)
                order_result = cursor.fetchall()
                order_data = list(order_result)

            ...
             ... #rest_code
              ...


            return Response({"order_data":order_data},status=status.HTTP_200_OK)
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)
EN

回答 1

Stack Overflow用户

发布于 2020-03-08 01:33:36

我不太熟悉Django,但正如您所说,您自己使用MySQL从DB获取原始数据,因此设置分页应该与将LIMIT $offset, $perpage添加到MySQL查询一样简单……

代码语言:javascript
运行
复制
SELECT * FROM order_details LIMIT 0, 5;

例如,这个查询将得到页面1,每页5个页面。要转到第5页,每页5个,它是LIMIT 4*5, 5 = LIMIT 25, 5。如果您想转到37页,每页10页,它将是LIMIT 36*10, 10 = LIMIT 360, 10

这应该可以解决MySQL部件的分页问题。您将需要设置vars来确定来自用户的pageperpage,可能是通过GET参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60542319

复制
相关文章

相似问题

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