gpt4 book ai didi

java - postgresql 中的 IN 子句可以使用多少个参数?

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:17 24 4
gpt4 key购买 nike

我正在通过 java 程序在 postgresql 数据库中执行查询,查询如下:

SELECT ... FROM table_name WHERE column_name IN("<list of values>");

问题是值列表是动态创建的,并且对其大小没有限制,当这个列表变得太大时,我收到一个 PSQLException 消息:超出堆栈深度长度。我的问题是如何确定在此异常发生之前我可以在 IN 子句中使用多少个参数?假设 max_stack_depth 是 2MB,我可以用它来确定我可以在 IN 子句中使用多少个参数吗?

最佳答案

values 表进行内连接

select ...
from
table_name
inner join
(values
(first_value), (second_value)
) s(column_name) using (column_name)
;

或者,更容易将字符串构建为未嵌套的数组

select ...
from
table_name
inner join
unnest(
array[first_value, second_value]
) s(column_name) using (column_name)
;

关于java - postgresql 中的 IN 子句可以使用多少个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25848652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com