php - SQL - 选择两列之间的最大差异

标签 php mysql sql difference

我正在寻找一些查询来获取 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 bylimit:

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/

相关文章:

MySql 查询花费的时间太长 - webfaction 上的 django

javascript - 在莫里斯图表中正确显示 JSON 结果

php - 上传数据并从两个表格中选择它们并显示在同一个 HTML 表格中

c# - 使用 ORM 创建数据库

php - 如何删除htaccess中的部分url

php - 循环多次写入文件或创建巨大的字符串然后写入文件?

mysql - 如何在 Aria(MariaDB) 中启用事务?

mysql - 选择花费 9.+ 秒。怎么重写比较好?

php - Amazon S3 在创建对象时抛出 cURL 错误

PHP 表单复选框