java - 如何在 JDBC 中使用 MySQL 子查询?

标签 java mysql prepared-statement

示例查询:

SELECT country 
FROM data 
WHERE city LIKE 
(SELECT LEFT ('jakartada',7));

JDBC 中的示例:

String sql = " SELECT country FROM data WHERE city LIKE (SELECT LEFT ('?',7)) ";
PreparedStatement ps = koneksi.prepareStatement(sql);
ps.setString(1,     city    );
ResultSet rs = ps.executeQuery();

为什么这不能正常工作?

最佳答案

准备好的语句中没有参数,但是代码尝试设置参数。尝试向语句中添加一个参数。

String sql = " SELECT country FROM data WHERE city LIKE (SELECT LEFT (?,7)) ";
PreparedStatement ps = koneksi.prepareStatement(sql);
ps.setString(1,     city    );
ResultSet rs = ps.executeQuery();

或者尝试删除设置参数的语句:

String sql = " SELECT country FROM data WHERE city LIKE (SELECT LEFT ('jakartada',7)) ";
PreparedStatement ps = koneksi.prepareStatement(sql);
ResultSet rs = ps.executeQuery();

关于java - 如何在 JDBC 中使用 MySQL 子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329944/

相关文章:

mysql - 如何将Mamp的mysql数据文件夹同步到Dropbox

php - 是否可以将 PDO 参数绑定(bind)到对象的成员变量?

java - 将maven项目集成到Eclipse中

java - 从 SSLContext 中提取证书

java - 更新其网站的应用程序

java.sql.SQL语法错误异常 : Syntax error: Encountered "(" at line

PHP/MySQL : Using array elements in WHERE clause using prepared statements

java - @Captor 和 @Mock 不使用 MockitoJUnitRunner 创建对象

java - 避免 java 中的速率限制(IRC)

javascript - 如何根据 ajax 成功返回的数据追加一行?