1

当我运行我的选择

SELECT id, MAX(amount) AS value FROM bids

它似乎返回了错误的 id...它返回第一个 id 值而不是 MAX(amount) 选择的 id。

4

2 回答 2

2

这是意料之中的 - 您正在使用没有任何“分组依据”子句的聚合函数。MySQL 很有礼貌,并假设您希望在表上设置一个 GLOBAL 最大值,而您很可能想要这样做:

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 回答