java—生成一个sql查询,从多个列中选择一组值

trnvg8h3  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(372)

我有一张这样的table:
AccountNumNameRoutingNuma1名称1名称2名称2名称3
我要选择具有特定对帐号和路由号码的所有行,例如:

input
List<accountNum, routingNumber> pairList = {<a1, r1>, <a2, r2>}

sql returns:
| AccountNum | Name           | RoutingNum      |
| --------   | -------------- |--------------
| a1         | name1          | r1              |
| a2         | name2          | r2              |

对于某些上下文,我只想使用jdbc进行一个调用,这是我的java代码,它只选择帐号,这不是我想要的,因为我也想使用routingnum进行选择:

String inSql = String.join(",", Collections.nCopies(plainAccountNumberEntries.size(), "?"));
        List<String>accountNumberList = Arrays.asList("a1", "a2");

        return ddsJdbc.query(
                String.format("SELECT * from table where AccountNum in (%s)", inSql),
                accountNumberList.toArray(),
                new someMapper()
        );

我希望避免对列表中的每个条目多次调用数据库。
谢谢你的时间。

w6lpcovy

w6lpcovy1#

使用 IN 列表中有多个表达式的条件:

SELECT *
from   table_name
where  ( AccountNum, RoutingNum ) in ( ( 'A1', 'R1' ), ( 'A2', 'R2') )

相关问题