【发布时间】:2014-07-16 06:09:19
【问题描述】:
我需要在我正在编写的 Django 应用程序中使用原始 SQL 查询。 SQL 查询在where 语句中包含in 子句:
select *
from abc_mymodel
where some_fk in (1,2,3)
and some_status = 'foo'
我非常支持将 SQL 参数作为参数传递。对于单值的,这很容易完成。但是,我不确定如何(或是否)可以为 in 子句做到这一点。理想情况下,我想做这样的事情:
sql = """
select *
from abc_mymodel
where some_fk in %s
and some_status = %s
"""
my_list = [1,2,3]
my_status = 'foo'
trinkets = MyModel.objects.raw(
sql,
params=(my_list, my_status)
)
我知道我可以使用字符串组合来编写in 子句,并将参数用于剩余值。但是,我很好奇是否也可以将参数用于 in 子句。
【问题讨论】:
-
这个问题明确要求原始 sql 查询,所以我不认为它是重复的。
标签: database django django-orm