我已經制定了像這樣的表:找出特定行的行數,通過一筆訂貨後
wins(userid, wins, losses)
我運行像這樣的查詢命令表:
SELECT winloss.userid AS userid,
(winloss.wins*3) - winloss.losses AS winloss
FROM site_win_loss AS winloss WHERE winloss.userid
NOT IN (0, 1, 2, 3, 4, 5, 26, 32, 46, 90) ORDER BY winloss DESC
這樣做是爲每個用戶分配他們的分數,並以排行榜的形式對他們進行排序。現在,在我的實際執行我用一個簡單的PHP計數放置1,2,3 ECT有名稱旁邊,但我知道,我也可以這樣做:
SELECT @rownum:[email protected]+1 as rank,
winloss.userid AS userid,
(winloss.wins*3) - winloss.losses AS winloss
FROM site_win_loss AS winloss,
(select @rownum:=0) a
WHERE winloss.username NOT IN (0, 1, 2, 3, 4, 5, 26, 32, 46, 90)
ORDER BY winloss DESC
現在,讓我們說,上述返回我以下內容:
rank | userid | winloss
1 | 45 | 657
2 | 54 | 587
3 | 26 | 501
4 | 76 | 532
5 | 34 | 476
6 | 63 | 412
7 | 23 | 367
8 | 84 | 314
9 | 41 | 265
10 | 96 | 201
有沒有反正我可以抓住上面的特定行?例如,如果我想JUST用戶41的細節上面的SQL語句將返回僅此:
rank | userid | winloss
9 | 41 | 265
在此先感謝
我將如何執行在查詢內我已經運行? –
我想象着你將嵌套上面以創建一個臨時/永久表。 如果這不是您的計劃,您可以將上述內容全部放入子查詢中,並使用上面包含的查詢獲取您想要的記錄: 從([您上面的查詢]中選擇* )一個 其中a.userid = 41 – Chris
是的,就是這樣。我認爲當時我認爲(看起來不正確)我可以用一些聰明的WHERE條件來做到這一點。只要我點擊它,我就會給你打勾。你首先到達那裏。 –