2016-12-02 13 views
0

NodeJsで実行されるカラム名packageIdを持つmysqlテーブルがあります。私はその行の最高のインスタンスを取得しようとしています。たとえば、列に2,3,4,5がある場合は、5を取得する必要があります。カラムの最大値を取得するmysql

mysql関数MAXをクエリに使用しようとしましたが、クエリが実行されないようです。 MAX関数を削除すると、実行され、各列の値を処理します。私はただ一つの値を返したいだけです。

connectionSelectPackageId.connect(); 

let sqlSelectPackageId = "SELECT MAX(packageId) FROM recipients"; 

connectionSelectPackageId.query(sqlSelectPackageId, function(err, rows, fields) { 
    if (!err) { 
     console.log(rows); 
     console.log(rows[i]); 
     console.log("package id" + rows[i].packageId); 
    }; 
}); 
+1

はあなたのようなあなたのMAX()のエイリアス名を必要とするこの 'recipients' FROM MAXIDとしてMAX(のPackageID)を選択します。次に 'rows [i] .maxId' –

+0

を試してください。どこからイテレータ変数' i'を取得していますか?私はそれがどこにでも宣言されているのを見ない。 –

+0

エイリアス名がトリックでしたが、なぜそれが必要なのか不思議に思っています。もし私がその値をコードの他の部分に使用するために保存したいのであれば。私は返すことができますかvar packageId = rows [i] .maxId ;? – John

答えて

1

マックスは()これを試して動作しない場合:

SELECT packageId 
FROM recipients 
order by packageId desc 
limit 1 
+0

ありがとう、私はmax()でエイリアス名を割り当てることによって動作するようになった。どのように私は変数として値を格納することができるので、私はクエリの外で、その変数を使用することができますコードの他の部分では? – John

関連する問題