我需要sqlalchemy中的一个条件,该条件允许我使用存储在TEXT列中的ID列表作为in_
的参数。 id像1,2,3,4
一样简单地存储。我尝试使用in_
,但似乎存储在TEXT列中的“列表”不是正确的方法。
这是我尝试过的:
filters.append(and_(Organisation.id.in_(Session.list_id), Session.token == token))
这给了我这个错误:
sqlalchemy.exc.InvalidRequestError: in_() accepts either a list of expressions, a selectable, or an "expanding" bound parameter: Column('list_id', Text(), table=<MYTABLE>)
所以我尝试找到一个拆分来做类似的事情:
filters.append(and_(Organisation.id.in_(Session.list_id.split(',')), Session.token == token))
但是分裂,爆炸或各种分离功能都不存在!
我尝试使用更多的SQL方式,但是我总是碰到使用不存在的函数!
filters.append(Organisation.id.in_(ds.query(Session.list_id).filter(Session.token == token)))
实现此目标的最佳方法是什么?我的最后一个想法是创建一个表来将每个id存储在单行中,但是对于我需要的东西似乎有点过分了。或在单独的查询中执行。
任何提示将不胜感激。
谢谢