Mysql 如何在SQL查询中按页面设置分页?
如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但在我的代码中不起作用,我使用SQL原始查询而不是ORM直接获取数据。我认为另一种方法是使用SQL查询限制或偏移量设置分页,但我在搜索下一页时不知道url端点Mysql 如何在SQL查询中按页面设置分页?,mysql,sql,django,django-rest-framework,Mysql,Sql,Django,Django Rest Framework,如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但在我的代码中不起作用,我使用SQL原始查询而不是ORM直接获取数据。我认为另一种方法是使用SQL查询限制或偏移量设置分页,但我在搜索下一页时不知道url端点 class Order_ListAPIView(APIView): def get(self,request,format=None): if request.method == 'GET': cur,conn = con
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)
我对Django不太熟悉,但正如您所说,您正在使用MySQL从数据库中获取原始数据,因此要设置分页,只需将
LIMIT$offset,$perpage
添加到MySQL查询中即可
SELECT * FROM order_details LIMIT 0, 5;
例如,这个查询将得到第1页,每页5页。要进入第5页,每页5个,它是限制4*5,5
=限制25,5
。如果你想以每页10的速度进入第37页,那将是限制36*10,10
=限制360,10
这将解决MySQL部件的分页问题。您需要设置VAR以从用户(可能是从GET参数)确定
page
和perpage
。这是否回答了您的问题?我在这个链接@mkpateth中没有得到任何帮助使用sql
而不是ORM
。因为我的高级开发人员决定使用sql查询方法查看request.method==“get”:内部get()方法很奇怪