如何在sqlalchemy中进行操作?

时间:2020-11-11 19:35:29

标签: python postgresql sqlalchemy

这就是我想要做的。数据库是Postgres。

数字是Python set()或其他可迭代的数字。

session.execute(table.update().\
                        where(func.substring(table.c.number,1 ,5) in numbers).\
                        values(provider="testprovider")

问题是in numbers似乎不起作用。如果我执行类似where(func.substring(table.c.number,1, 5)== '12345')

的操作,它将只处理一个数字

我已经大量研究了如何使用sqlalchemy WHERE IN,但是所有这些都使用SELECT查询或在列本身上使用.in_()函数。例如,以下答案:link

documentation还说.in_()仅适用于列。

所以,我真的不知道该如何进行。我怎么写这个表情?

1 个答案:

答案 0 :(得分:0)

没关系,尽管文档中没有说明,但是我可以对func.substring的结果使用.in_()函数。

所以

where(func.substring(table.c.number, 1, 5).in_(numbers))

工作。