0
我手动使用此查询,它工作正常,我失踪了?如果我不使用WHERE,它会很好地执行。MySQL语法异常,手动工作
for (ArrayList<String> match : matches) {
System.out.println(match.get(0));
// String
// 7412095225787794836
String query1 = "SELECT COUNT(*) FROM `matches_players` WHERE `match_id` = ?";
PreparedStatement preparedStmt1 = (PreparedStatement) conn.prepareStatement(query1);
preparedStmt1.setString(1, match.get(0));
ResultSet rs1 = preparedStmt1.executeQuery(query1);
// You have an error in your SQL syntax; check the manual that corresponds to your
// MySQL server version for the right syntax to use near '?' at line 1
while (rs1.next()) {
System.out.println("players=" + rs1.getInt("COUNT(*)"));
}
}
'match_id'列是否有'INT'类型?你可以试试'prepareStmt1.setInt(1,match.get(0).intValue());' – 2014-10-11 16:21:05
@OllieJones这是一个字符串。我知道,那很愚蠢。但它来自ArrayList。 –
Kenny
2014-10-11 16:22:22
有时整数作为字符串返回,具体取决于所使用的驱动程序。你能看到字段match_id的DDL吗?我敢打赌它是整数。 – 2014-10-11 16:25:19