1

セレクトを実行すると

SELECT id, MAX(amount) AS value FROM bids

間違ったIDを返しているようです...MAX(amount)で選択されたIDではなく、最初のID値を返します。

4

2 に答える 2

2

これは予想されることです。「groupby」句のない集計関数を使用しています。MySQLは礼儀正しく、テーブルにGLOBAL maxが必要であると想定していますが、おそらくこれを実行したいと考えています。

SELECT id, MAX(amount) AS value
FROM bids
GROUP BY id
于 2012-05-01T19:33:56.153 に答える
1

あなたはこのようなことをする必要があるでしょう(私はそれがあなたが望むデータを得る最良の方法であるかどうかはわかりませんが):

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

于 2012-05-01T19:33:26.980 に答える