我正在寻找一些查询来获取 2 列之间的最大差异,并返回列“名称”和它们之间的差异。
我正在使用 PHP (PDO) 对我的 MySQL 数据库执行此操作。
这是我的 table :
表名 = 玩家。
+--------+--------+--------+
| name | score1 | score2 |
+--------+--------+--------+
| bob | 10 | 5 |
| sarah | 3 | 1 |
| george | 2 | 9 |
+--------+--------+--------+
如您所见,Bob 的差异为 5。 莎拉的差异为 2。 而乔治相差 7。
在这种情况下,George 在 2 个分数之间的差异最大。 因此,我想得到乔治的名字和两个分数之间的差异。
所以在我的页面上,我应该打印字符串: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;
关于php - SQL - 选择两列之间的最大差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063878/