postgresql Peewee:如何使用带元组的IN运算符

osh3o9ms  于 2023-03-01  发布在  PostgreSQL
关注(0)|答案(1)|浏览(294)

我想知道如何使用Python Peewee语法构建以下postgresql查询:

select *
from tbl
where (tbl.a, tbl.b) in ((val1_1, val1_2), (val2_1, val2_2) ... )
zlhcx6iw

zlhcx6iw1#

主要是写Tuple(Tbl.a, Tbl.b).in_(...)

class Reg(db.Model):
    key = TextField()
    value = IntegerField()

db.create_tables([Reg])
for i in range(10):
    for j in range(10):
        Reg.create(key='k%s' % i, value=j)

vals = [('k%s' % i, i) for i in range(10)]
q = Reg.select().where(Tuple(Reg.key, Reg.value).in_(vals))
for row in q:
    print(row.key, row.value)

输出:

k0 0
k1 1
k2 2
k3 3
k4 4
k5 5
k6 6
k7 7
k8 8
k9 9

相关问题