Python 从元组中提取子集 sql 结果
Python extracting a subset from tuple that is sql result
我的代码执行查询:
cursor = connection.cursor()
cursor.execute("select studentId from students order by avgGrade desc")
ids = cursor.fetchall()
我 运行 所有学生所以我可以计算出有多少
numberOfStudents = len(ids)
那我希望只得到前10的对象,
如何更改此语句以处理 10 个而不是所有 id?
Students.objects.filter(studentid__in=[p[0] for p in ids])
您可以使用列表切片从 ids 列表中获取前 10 个元素。
Students.objects.filter(studentid__in=[p[0] for p in ids[:10]])
您也可以在两个 sql 查询中完成这两个任务
select count(studentId) as number_of_students from students
和
select studentId from students order by avgGrade desc limit 10
这样您就可以避免下载所有学生 ID,以防它是一个很长的列表。
我的代码执行查询:
cursor = connection.cursor()
cursor.execute("select studentId from students order by avgGrade desc")
ids = cursor.fetchall()
我 运行 所有学生所以我可以计算出有多少
numberOfStudents = len(ids)
那我希望只得到前10的对象, 如何更改此语句以处理 10 个而不是所有 id?
Students.objects.filter(studentid__in=[p[0] for p in ids])
您可以使用列表切片从 ids 列表中获取前 10 个元素。
Students.objects.filter(studentid__in=[p[0] for p in ids[:10]])
您也可以在两个 sql 查询中完成这两个任务
select count(studentId) as number_of_students from students
和
select studentId from students order by avgGrade desc limit 10
这样您就可以避免下载所有学生 ID,以防它是一个很长的列表。