我正在寻找一些查询,以获得两个列之间的顶部差异,并返回列“名称”和它们之间的差异。
我正在使用PHP (PDO)对我的MySQL数据库执行此操作。
这是我的桌子:
表名=播放机
+--------+--------+--------+
| name | score1 | score2 |
+--------+--------+--------+
| bob | 10 | 5 |
| sarah | 3 | 1 |
| george | 2 | 9 |
+--------+--------+--------+正如你所看到的,鲍勃的差是5,莎拉的差是2,乔治的差是7。
在这种情况下,乔治的2分差距最大。因此,我想知道乔治的名字和2分之间的差别。
因此,在我的页面上,我应该打印字符串:George (+7)
另外,如果2或2以上有相同的差异,它应该选择一个具有最高的score1。如果多个人有相同的差异和score1,那么应该选择他们中的任何一个,这并不重要。
但我如何选择这两者之间的区别呢?
我没有找到任何这方面的文件。
发布于 2018-01-02 15:50:26
您可以使用order by和limit
select t.*, (score2 - score1) as diff
from t
order by abs(score2 - score1) desc, score1 desc
limit 1;https://stackoverflow.com/questions/48063878
复制相似问题