mysql - 获取2列的最大值和数字最大的行的全行信息

标签 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)); 并收到一条错误消息, “群组功能使用无效。”

最佳答案

我是不是漏掉了什么。为什么不呢?

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

如果出现平局,如果您仅对两个数字中的 greatest() 进行排序,则无法保证可重复的行为。如果 Smith 的 num1 是 70 而 Jones 的 num2 是 70 怎么办?每次执行查询时,任何一个都可以作为第一个出现。如果您想要可重复的选择,请添加另一个排序列以保证可预测的排序(例如,按主键排序)。

关于mysql - 获取2列的最大值和数字最大的行的全行信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135679/

相关文章:

php - 使用 PBKDF2 在 MySQL 数据库中存储密码和盐

sql - 就sql中的内连接和where子句而言,什么更有效

php - 更新当前数据库表

mysql - 如何在不知道列长的情况下将所有位设置为 1?

php - MySQL - 在多值字段中搜索

mysql - 关于 count 和 group_by 的奇怪问题,可能是不同的

sql - WordPress 和 MySQL 排序规则

sql - 一个 SQL 查询中的多个插入

sql - 有什么方法可以将值(value)从一个细胞转移到另一个细胞?

mysql - 使用 ip2nation IP 值更新 mysql 查询