这就是我想要做的。数据库是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_()仅适用于列。
所以,我真的不知道该如何进行。我怎么写这个表情?
答案 0 :(得分:0)
没关系,尽管文档中没有说明,但是我可以对func.substring的结果使用.in_()函数。
所以
where(func.substring(table.c.number, 1, 5).in_(numbers))
工作。