我在我的數據庫中有一張表,其中包含用於在人與人之間記錄遊戲的數據。我希望有一個查詢可以返回兩個玩家之間最接近的遊戲,即記錄的兩個得分之間的最小差異,而不管誰贏了。我已經開始了這樣的查詢,但我不能完全得到我想要的。如何找到Mysql中兩列之間的最小差異?
SELECT recorder_score, opponent_score
from games
where recorder_id = $recorder_id
order by (recorder_score - opponent_score)
limit 1
以上顯然將只返回最近的遊戲,提交遊戲的人贏了,但正如我所說,我想最近的比賽無論誰獲勝。什麼是最好的做法呢?
是記錄永遠的贏家之間的最近的比賽?對手的身份是什麼?請提供您的表格模式,樣本數據和預期結果。 – sgeddes
錄音機並不總是贏家。對手身份不記錄,因爲對手可能是沒有在網站內註冊的人。識別對手的唯一方法是輸入的名稱可能會有所不同。這個查詢唯一相關的列是我提到的:recorder_id,recorder_score,opponent_score。其他列包括game_date,game_id和opponent_name。 – Chickhorse