1

我想搜索一列的最大值,但找到的值总是收到 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

错误:

java.sql.SQLException: Column 'idrf' not found.
maXnumR : java.sql.SQLException: Column 'idrf' not found.
idrf existe:0
4

2 回答 2

8

尝试

SELECT max(`idrf`) as idrf
于 2012-04-30T13:31:13.257 回答
3

就像卢卡说的那样,问题是您的查询没有返回名为“idrf”的列,而是更像:“max(idrf)”。

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

话虽如此,您需要使用

SELECT max(`idrf`) as idrf

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

于 2012-04-30T13:32:48.027 回答