कई बार आपको MySQL में रैंक की गणना करने की आवश्यकता होती है। आप किसी संख्या या टेक्स्ट द्वारा ऑर्डर कर सकते हैं लेकिन MySQL में आसानी से रैंक की गणना नहीं कर सकते। यहां एक क्वेरी है जिसका आप उपयोग कर सकते हैं। बस तालिका का नाम बदलें स्कोर और कॉलम नाम आईडी, स्कोर।
बढ़ते मान के आधार पर MySQL में रैंक की गणना करें
उदाहरण:
CREATE TABLE score (id int, score int); INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36); Scores: +----+------+ | id | score| +----+------+ | 1 | 35 | | 2 | 10 | | 3 | 30 | | 4 | 22 | | 5 | 20 | | 6 | 18 | | 7 | 36 | +----+------+
हम रैंकिंग चर का उपयोग करते हैं, जैसे कि निम्न:
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score;
(SELECT @curRank := 0)
भाग एक अलग SET कमांड की आवश्यकता के बिना चर आरंभीकरण की अनुमति देता है।
Result: +----+------+------+ | id | score| rank | +----+------+------+ | 2 | 10 | 1 | | 6 | 18 | 2 | | 5 | 20 | 3 | | 4 | 22 | 4 | | 3 | 30 | 5 | | 1 | 35 | 6 | | 7 | 36 | 7 | +----+------+------+ 7 rows in set (0.02 sec)
MySQL में घटते मान के आधार पर रैंक की गणना करें
यदि आप अंकों के घटते क्रम के आधार पर MySQL में रैंक की गणना करना चाहते हैं तो बस क्वेरी में DESC कीवर्ड जोड़ें।
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score DESC;
नतीजा: