SQLAlchemy中的最大绑定参数数

时间:2016-06-22 18:39:13

标签: python postgresql sqlalchemy

我有一个问题,关于可以传递给我希望使用SQLAlchemy执行的查询的最大绑定参数数。

我的查询是一组SELECT语句,所有这些语句都通过UNION组合在一起(大约100+) 并且每个select语句将传递不同的值。我需要通过UNION执行此操作的原因是我在Postgres中使用了三元组匹配运算符%(https://www.postgresql.org/docs/9.3/static/pgtrgm.html),因此我无法使用IN将语句组合成一个语句。

SELECT col1, col2, col3 FROM TABLE where col3=:p1 AND col2 % :q1
UNION 
SELECT col1, col2, col3 FROM TABLE where col3=:p2 AND col2 % :q2
UNION 
SELECT col1, col2, col3 FROM TABLE where col3=:p3 AND col2 % :q3
UNION 
...

等。 是否存在导致其失败的限制? params是(p1,q1, p2,q2, p3, q3)等等。

1 个答案:

答案 0 :(得分:0)

我可以通过在Postgresql中使用VALUES列表来实现我的目标:

SELECT col1, col2, col3 FROM TABLE a,  
VALUES(('x1','x2','x3'), ('y1','y2','y3'), ('z1','z2','z3')) 
AS t(col1, col2, col3) 
WHERE a.col1=t.col1 AND lower(a.col2) % t.name