gpt4 book ai didi

python - 有没有办法在单个查询中获取表行和表数据的总数

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:56 24 4
gpt4 key购买 nike

问题是,要获取计数和表数据,我必须在 Django 中访问数据库两次。例如:

count = queryset.count() # To get count
data = queryset.values('columns') # To get data

有没有办法在单个查询中获取数据。一种解决方案是使用 len() 函数,但对于将更大的表加载到 RAM 中并不好。

在mysql中,我得到了这个,但是如何通过Django ORM执行

SELECT t1.count, id FROM table1, (select count(*) as count FROM table1) as t1 limit 10;

任何帮助将不胜感激。

最佳答案

我的意思是,如果您先获取数据,len 应该只计算内存中已有的内容,因此它应该比对数据库进行两次查询要好。

data = queryset.values('columns') # To get data
count = len(data) # To get count from database records in memory

无论如何,对于没有来自 Django 文档的模型层的直接数据库查询:

from django.db import connection

def my_custom_sql(self):
with connection.cursor() as cursor:
cursor.execute("SELECT t1.count, id FROM table1, (select count(*) as count FROM table1) as t1 limit 10")
row = dictfetchall(cursor)

return row

关于python - 有没有办法在单个查询中获取表行和表数据的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52639277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com