セレクトを実行すると
SELECT id, MAX(amount) AS value FROM bids
間違ったIDを返しているようです...MAX(amount)で選択されたIDではなく、最初のID値を返します。
セレクトを実行すると
SELECT id, MAX(amount) AS value FROM bids
間違ったIDを返しているようです...MAX(amount)で選択されたIDではなく、最初のID値を返します。
これは予想されることです。「groupby」句のない集計関数を使用しています。MySQLは礼儀正しく、テーブルにGLOBAL maxが必要であると想定していますが、おそらくこれを実行したいと考えています。
SELECT id, MAX(amount) AS value
FROM bids
GROUP BY id
あなたはこのようなことをする必要があるでしょう(私はそれがあなたが望むデータを得る最良の方法であるかどうかはわかりませんが):
SELECT id
FROM bids
WHERE amount = MAX(amount)
おそらく、LIMIT
またはORDER BY
句(または両方)を追加して、探しているデータをさらに絞り込むことができます。
また、試すことができます:
SELECT id
FROM bids
ORDER BY amount DESC
LIMIT 1
id
テーブルの最大値のシングルを取得amount
します。そして、このようにした場合、最終的にはamount
フィールドにインデックスを付けてクエリを高速化する必要があります。これはすべて、あなたがあなたのテーブルid
の最高のものと一緒に行くことを望んでいると仮定しています、そしてそれはそれです。amount