当我运行我的选择
SELECT id, MAX(amount) AS value FROM bids
它似乎返回了错误的 id...它返回第一个 id 值而不是 MAX(amount) 选择的 id。
当我运行我的选择
SELECT id, MAX(amount) AS value FROM bids
它似乎返回了错误的 id...它返回第一个 id 值而不是 MAX(amount) 选择的 id。
这是意料之中的 - 您正在使用没有任何“分组依据”子句的聚合函数。MySQL 很有礼貌,并假设您希望在表上设置一个 GLOBAL 最大值,而您很可能想要这样做:
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
仅此而已。