我有一个简单的模型有2个字段:
class Simple(Model)
class Meta:
index_together = True
a = IntField()
b = IntField()
Run Code Online (Sandbox Code Playgroud)
我想为值的元组生成一个SQL查询a,b.例如
select *
from SimpleModel
where (a,b) in ((1,1), (4,8), ...)
Run Code Online (Sandbox Code Playgroud)
我知道如何创建类似的东西:
select *
from SimpleModel
where ((a = 1 and b = 1) or (a = 4 and b = 8))
Run Code Online (Sandbox Code Playgroud)
这在逻辑上是相同的,但我认为我的数据库在可能值的数量非常大(我使用Postgresql)时会出现问题,查询本身也会长得多,所以它在网络上更重,并且可能更难正确分析和读取(即在这种情况下使用复合索引).
所以,问题是,我可以让Django以第一种形式创建查询吗?
谢谢!