如何找到列mysql的最大值并返回值?

时间:2012-04-30 13:29:21

标签: java mysql mysql-error-1064 sqlexception

我想搜索列的最大值,但找到的值始终为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

2 个答案:

答案 0 :(得分:8)

SELECT max(`idrf`) as idrf

答案 1 :(得分:3)

就像Luca所说,问题是你的查询没有返回名为“idrf”的列,但更像是“max(idrf)”。

这意味着当您使用getInt("idrf")时,查询返回的resultSet中没有匹配项。

话虽如此,你需要使用

SELECT max(`idrf`) as idrf

(或者你的resultSet列的任何其他名称),就像Luca回答的那样,并将其作为你的getInt的关键。