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 に答える