我正在寻找一些查询,以获取两列之间的最大差异,并返回列“name”和它们之间的差异。
我使用PHP(PDO)来处理MySQL数据库。
这是我的桌子:
Table name=玩家。
+--------+--------+--------+
| name | score1 | score2 |
+--------+--------+--------+
| bob | 10 | 5 |
| sarah | 3 | 1 |
| george | 2 | 9 |
+--------+--------+--------+
如你所见,鲍勃有5分之差。
莎拉差2分。
和乔治有7个不同。
在这种情况下,乔治在这两个分数之间的差距最大。
因此我想知道乔治的名字和两个分数之间的差距。
所以在我的页面上,我应该打印字符串:
George (+7)
此外,如果2个或更多个具有相同的差异,则应选择
score1
最高的一个。如果多个人有相同的差异并且score1
,那么应该只选择其中的一个,这无关紧要。但我如何选择两者之间的区别呢?
我还没有找到任何相关文件。
最佳答案
您可以使用order by
和limit
:
select t.*, (score2 - score1) as diff
from t
order by abs(score2 - score1) desc, score1 desc
limit 1;