Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql तालिका में रैंकिंग प्रविष्टियाँ

पहले टेबल को सॉर्ट किए बिना या रैंक को स्टोर किए बिना किसी चीज के ऑर्डर (जिसे आप रैंक कहते हैं) की गणना करने का कोई तरीका नहीं है।

यदि आपकी तालिका को ठीक से अनुक्रमित किया गया है (लोकप्रियता पर सूचकांक) तो डेटाबेस के लिए इसे क्रमबद्ध करना तुच्छ है ताकि आप अपना रैंक प्राप्त कर सकें। मैं कुछ इस तरह का सुझाव दूंगा:

रैंक सहित सभी का चयन करें

SET @rank := 0;
SELECT t.*, @rank := @rank + 1
FROM table t
ORDER BY t.popularity;

एक विशिष्ट "आईडी" के साथ एक आइटम लाने के लिए आप बस एक सबक्वेरी का उपयोग इस प्रकार कर सकते हैं:

रैंक सहित किसी एक को चुनें

SET @rank := 0;
SELECT * FROM (
  SELECT t.*, @rank := @rank + 1
  FROM table t
  ORDER BY t.popularity
) t2
WHERE t2.id = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कहाँ का उपयोग करके ठीक करें; अस्थायी का उपयोग करना; फाइलसॉर्ट का उपयोग करना

  2. XML फ़ाइल में मिलते-जुलते टैग को कैसे संयोजित करें?

  3. pdo mysql लेनदेन को समझना

  4. मैं यह देखने के लिए कैसे जांच करूं कि कोई मान MySQL में एक पूर्णांक है या नहीं?

  5. मैं एक संग्रहीत रिकॉर्ड तालिका में डुप्लिकेट प्रविष्टियों को कैसे साफ़ कर सकता हूँ?