今天我花了很多時間嘗試各種各樣的事情,但他們都沒有工作。這裏是我的情況,我想能夠選擇基於它的ID從具體分類排使用MySQL,我該如何選擇一個特定行的查詢結果等級?
例如某行的秩,如果我的查詢是這樣的:
SELECT id, name FROM people ORDER BY name ASC
與結果像:
id name 3 Andrew 1 Bob 5 Joe 4 John 2 Steve
我想獲得排名(哪一行它的結果結束了),而無需返回所有行和循環扔他們,直到我到了一個我想(在PHP)。
例如,我想選擇'史蒂夫'的'排名',以便返回 - 在這種情況下 - 5(不是他的id,而是他的名字在上述查詢中的'排名' )。
同樣,我希望能夠選擇ID爲1的任何行的排名。對於此示例,我想返回2的「排名」(因爲那是在那裏的結果行中)是1)的ID,沒有別的。
我已經Google儘可能多地處理不同的結果......要麼對較大的表進行非常緩慢的查詢,要麼必須創建各種臨時表和用戶變量(前者我真的很想避免,後者我想我可以生活在一起)。
任何幫助或洞察力將不勝感激。
經過一些小的更改後,這看起來確實工作得很好,以滿足我的需要。然而,另外一個複雜的情況是:在給定一組條件的情況下是否可以選擇一組行(例如,只有名稱中包含'J'的人 - 其中名稱LIKE'%j%')。 ,雖然結果字段'rank'仍然相關,但它會跳過那些名字中沒有J的數字。 – theotherlight 2009-08-11 20:14:43