【发布时间】:2020-01-21 14:56:31
【问题描述】:
我在我的 Spring Boot 程序中有一个 Integer 对象列表,我想将其用作更新表的参考,仅为在此列表中找到具有 id 的记录设置一列为某个值。由于列表的潜在长度,我想避免使用 IN 子句,因为这可能会导致 SQL Server 错误太多参数。
我正在考虑的解决方案涉及类似于以下的查询:
WITH ids as (select * from <list of Integers> as pool(num))
update t set t.column = :value from <table> t, ids where t.id = ids.num
我看到的问题是将每个整数包装在 VALUE() 中的列表中,即:
WITH ids as (select * from value(1),value(2),...etc)
虽然我似乎可以通过在 Java 中迭代列表以编程方式查询字符串,但我真的希望尽可能避免这样做。我确实尝试过寻找解决方案,但找不到我想要的东西。有解决办法吗?
【问题讨论】:
标签: sql sql-server spring-boot tsql jpa