我在下面的sql语句中出错了。我访问过的网站提倡这是将这两个关键字一起使用的正确方法。我试图通过测试得到结果中的独特特征数。名称是测试的PK。
public int getTestCount(Database db, String name) throws SQLException {
int count = 0;
String sql = "SELECT COUNT (DISTINCT Trait) As Count FROM RESULTS WHERE name = ?";
PreparedStatement ps = db.con.prepareStatement(sql);
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
count = rs.getInt("Count");
}
return count;
}
错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个 SQL语法错误;查看与您的手册相对应的手册 MariaDB服务器版本,使用正确的语法 'DISTINCT Trait附近)作为结果从第1行开始名字='test3''
答案 0 :(得分:0)
删除单词COUNT
SELECT COUNT(DISTINCT Trait) As Count FROM RESULTS WHERE name = ?
以下是一个实例:SQL Fiddle
答案 1 :(得分:0)
public int getTestCount(Database db, String name) throws SQLException {
int count = 0;
String sql = "SELECT COUNT(DISTINCT Trait) As T_Count FROM RESULTS WHERE name = ?";
PreparedStatement ps = db.con.prepareStatement(sql);
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
count = rs.getInt("T_Count");
}
return count;
}
保留计数。因此,您可以定义任何有效变量,并在使用rs.getInt(<< here >>);
调用时使用它
一个很好的链接供您参考:MySql Syntax