在普通的 sql 中,要从第 r 行开始选择恰好 'n' 行,我们可以执行以下查询:
select * from someTable where target_user_id = user_id limit r,n;
在 Django 中,我能得到的最接近的是:
someTable.objects.filter(target_user_id=user_id, id__gte=r).values_list('user_id',flat=True)[:n]
但这与我的原始 sql 查询不同。 谁能解释一下等效的 Django 查询是什么?
最佳答案
试试这个:
someTable.objects.all()[r:r+n]
这就像普通列表一样:
In [10]: t = range(1,10)
In [11]: r = 2
In [12]: n = 3
In [13]: t[r:r+n]
Out[13]: [3, 4, 5]
Django 会将其转换为带限制的 SQL 查询。
关于mysql - 在 Django ORM 中选择中间行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511816/