获取2列的最高值以及具有最高编号的行的完整行信息

时间:2014-03-03 00:31:53

标签: mysql sql

id  |  name  |  num1  |  num2
 0  | Johnny |    0   |   7
 1  | Jason  |   50   |   3
 2  | John   |   60   |   1
 3  | Tom    |    5   |   70

如果我运行以下查询,我会得到以下结果:SELECT MAX(GREATEST(num1, num2)) FROM data

然而,我需要获得的是该行的完整信息。

因此,自从我获得70后,我希望能够访问该行的num1,name和id。

这有可能吗?

我执行了以下操作,SELECT * FROM data WHERE num1 = MAX(GREATEST(num1, num2)) OR num2 = MAX(GREATEST(num1, num2));并收到错误消息“群组功能的使用无效。”

1 个答案:

答案 0 :(得分:4)

我错过了什么。你为什么不这样做?

select * from data order by GREATEST(num1,num2) desc limit 0,1;

如果只有两个数字中的最大(),那么如果存在平局,则无法保证可重复行为。如果史密斯的num1是70而Jones的num2是70呢?每次执行查询时,任何一个都可以首先出现。如果要进行可重复选择,请添加另一个排序列,以保证可预测的排序(例如,对主键进行排序)。