[英]Eliminating quotes in prepared statement in mysql n java
我有这样一份准备好的声明
stmt = select * from table_name where id IN (?);
一旦我传递参数,stmt看起来就像
stmt = select * from table_name where id IN ('1,2,3');
执行查询时没有错误。 但是,仅为id=1
返回resultset
。 有什么方法可以消除引号/得到所有这些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的方法来处理这种情况(比如SQL Server 2008中的表值参数 ),但我不相信有一种通用的JDBC方法可以做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.