mysql - 在 Django ORM 中选择中间行

标签 mysql django

在普通的 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/

相关文章:

mysql - 为什么 mySQL DROP TABLE 不起作用?

mysql - 创建函数时出现语法错误

python - 我想在我的项目中创建 Django 弹出窗体

javascript - bootstrap 标签输入加载失败

python - Django 静态文件未使用默认设置加载

MySQL:按第二个表中的值排序,如果未设置值,则使用默认值

php - 我想通过单击编辑来选择整行进行编辑

mysql - 如何获取过去一年的活跃订单

python - django shell 启动时如何运行任意代码?

django - Django 中的 Pgsql 重叠函数