sql-选择两列之间的顶部差异

5lhxktic  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(315)

我正在寻找一些查询来获取两列之间的顶部差异,并返回列“name”和它们之间的差异。
我使用php(pdo)来处理mysql数据库。
这是我的table:
table name=玩家。

+--------+--------+--------+
|  name  | score1 | score2 |
+--------+--------+--------+
| bob    |     10 |      5 |
| sarah  |      3 |      1 |
| george |      2 |      9 |
+--------+--------+--------+

正如你所看到的,鲍勃有5分之差。莎拉差2分。乔治的差值是7。
在这种情况下,乔治在两个分数之间的差异最大。因此,我想得到乔治的名字和两个分数之间的差异。
所以在我的页面上,我应该打印字符串: George (+7) 另外,如果2个或更多的具有相同的差异,则应选择具有最高差异的一个 score1 . 如果多个人有相同的差异 score1 那就随便挑一个吧,没关系。
但我如何才能选择两者之间的区别呢?
我没有找到任何关于这个的文件。

erhoui1w

erhoui1w1#

你可以用 order by 以及 limit :

select t.*, (score2 - score1) as diff
from t
order by abs(score2 - score1) desc, score1 desc
limit 1;

相关问题