MySql选择最大错误ID?

时间:2012-05-01 19:30:51

标签: mysql

当我运行我的选择

SELECT id, MAX(amount) AS value FROM bids

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

2 个答案:

答案 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)

您可以添加LIMITORDER BY子句(或两者)以进一步削减您正在寻找的数据。

您也可以尝试:

SELECT id
FROM bids
ORDER BY amount DESC
LIMIT 1

为表格中的最大id获取一个amount。如果你这样做,你最终想在你的amount字段上放一个索引来加速查询。这就是假设您希望id与表格中的最高amount一致,就是这样。