当我运行我的选择
时 SELECT id, MAX(amount) AS value FROM bids
似乎返回错误的id ...它返回第一个id值,而不是MAX(金额)选择的id。
答案 0 :(得分:2)
这是预期的 - 你使用的是一个没有任何'group by'子句的聚合函数。 MySQL很有礼貌,假设你想要一个GLOBAL max,而你很可能想要这样做:
SELECT id, MAX(amount) AS value
FROM bids
GROUP BY id
答案 1 :(得分: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
一致,就是这样。