gpt4 book ai didi

java - 消除mysql n java中准备好的语句中的引号

转载 作者:行者123 更新时间:2023-11-29 04:53:05 25 4
gpt4 key购买 nike

我有这样一个准备好的语句

stmt = select * from table_name where id IN (?);

一旦我传递了参数,stmt 看起来就是这样

stmt = select * from table_name where id IN ('1,2,3');

执行查询时没有错误。然而,resultset 仅为 id=1 返回。有什么方法可以消除所有这些 ID 的引号/获取 resultset

stmt = select * from table_name where id IN (?);

select GROUP_CONCAT(id) id from table ;

if(rs.next()){

stmt.setString(1,rs.getString("id"));

stmt.executeQuery();
}

提前致谢。

最佳答案

不清楚 ID 类型是什么,但我相信您实际上应该准备一个语句,将每个可能的值作为单独的参数:

select * from table_name where id IN (?, ?, ?)

然后将三个参数的三个值相加。这是参数化 SQL 的一个常见问题 - 当您希望能够指定可变数量的值时,您需要改变 SQL。 可能有一种特定于 MySQL 的方式来处理这个问题(比如 table-valued parameters in SQL Server 2008 ),但我不相信有一种通用的 JDBC 方式可以做到这一点。

关于java - 消除mysql n java中准备好的语句中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9498356/

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