我想搜索列的最大值,但找到的值始终为0
public int maXnumR()
{
DataBase s = DataBase.getInstance();
int numR= getnumR();
String req1 = "SELECT max(`idrf`) FROM `reference` WHERE `numR` = "
+ numR + " GROUP BY `numR` ";
try
{
Statement m= s.getConn().createStatement();
ResultSet r1 = m.executeQuery(req1);
while (r1.next())
{
maxnumR =r1.getInt("idrf");
nbp++;
}
}
catch (SQLException e1)
{
e1.printStackTrace();
System.out.println("maXnumR : "+e1);
}
return maxnumR;
}
maXnumR返回0并且表格不为空。
如果我执行查询,它可以正常使用MySQL
erreur:
java.sql.SQLException: Column 'idrf' not found.
maXnumR : java.sql.SQLException: Column 'idrf' not found.
idrf existe:0
答案 0 :(得分:8)
试
SELECT max(`idrf`) as idrf
答案 1 :(得分:3)
就像Luca所说,问题是你的查询没有返回名为“idrf”的列,但更像是“max(idrf)”。
这意味着当您使用getInt("idrf")
时,查询返回的resultSet中没有匹配项。
话虽如此,你需要使用
SELECT max(`idrf`) as idrf
(或者你的resultSet列的任何其他名称),就像Luca回答的那样,并将其作为你的getInt的关键。