我有一个问题,关于可以传递给我希望使用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)
等等。
答案 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