MySql在一个查询中选择一对列的最大值

时间:2013-10-08 09:30:18

标签: mysql max

我需要一个查询来根据最大的一对列选择一行。在下表中,您将如何选择VALUE1最高的行以及第一个结果集中具有最高VALUE2的行?

+----+---------+---------+
| ID | VALUE1  | VALUE2  |
+----+---------+---------+
|  1 |       1 |       1 |
|  2 |       2 |       1 |
|  3 |       5 |       4 |
|  4 |       4 |       1 |
|  5 |       4 |       3 |
|  6 |       4 |       5 |
|  7 |       5 |       1 |
|  8 |       4 |       2 |
|  9 |       4 |       6 |
| 10 |       4 |       8 |
| 11 |       5 |       3 |

在这种情况下,应返回ID = 3的行。

2 个答案:

答案 0 :(得分:8)

SELECT * FROM tableName ORDER BY Value1 DESC, Value2 DESC LIMIT 1

答案 1 :(得分:0)

限制是此处的最佳选择,但如果您仍需要其他方法,则可以使用子查询

SELECT * FROM tableName  where (Value1 + Value2) = (select max((Value1 + Value2))
from tableName)