我的数据库中有一个表格,其中包含用于在人与人之间录制游戏的数据。我希望有一个查询可以返回两个玩家之间最接近的游戏,即记录的两个得分之间的最小差异,无论谁赢了。我已经开始使用类似的东西作为查询,但我无法得到我想要的东西。
SELECT recorder_score, opponent_score
from games
where recorder_id = $recorder_id
order by (recorder_score - opponent_score)
limit 1
以上显然只会返回提交游戏的人赢得的最接近的游戏,但正如我所提到的,我想要最接近的游戏,无论谁获胜。这样做的最佳方式是什么?
答案 0 :(得分:1)
在Order by
中使用ABS
获取两个玩家之间最近的游戏
SELECT recorder_score, opponent_score
from games
where recorder_id = $recorder_id
order by ABS(recorder_score - opponent_score)
limit 1