رتبه در sql

این تاپیک 4 پاسخ و 2 مشارکت کننده دارد . آخرین آپدیت توسط :  محمد اسفندیاری ،‏ 3 سال پیش .

٩٠٢ visibility
نویسنده پست
پنج شنبه ، ۶ شهریور ۱۳۹۳     ۹:۵۴ ق.ظ #


aligh

Subscriber
136 پست33 تاپیک

سلام دوستان . قبلا تاپیکی تقریبا با این موضوع ایجاد کرده بودم ولی چون قراره تقریبا یه موضوع دیگه رو بیان کنم گقتم بهتره یه تاپیک دیگه ایجاد کنم .

من میخوام بر اساس امتیازهای کاربران ، داده ها را از دیتابیس دریافت کنم و بر اساس امتیاز اون ها به کاربران امتیاز بدم . برای این کار از کوئری زیر استفاده کردم :
SELECT username,weblog,score,@curRank := @curRank + 1 AS rank FROM score, (SELECT @curRank := 0) r WHERE title='$title' ORDER BY score DESC
ولی این کوئری یه مشکل داره و مشکلش اینه که فقط یه واحد به رتبه ی قبلی اضافه میکنه . و چون من کاربرها را بر اساس شرهایی از دیتابیس دریافت میکنم ، بخاطر همین فقط کاربران دریافت شده رتبه دار میشن .
یعنی اگر امتیاز کاربری 23 و کاربر دیگه 25 (با شرطهای من) باشن و کاربر دیگه با امتیاز 28 باشه که شرط من رو نداشته باشه ، کاربری که امتیاز 25 رو داره در رتبه ی اول قرار میگیره . حالا چجوری میتونم رتبه بندی دقیق انجام بدم ؟

1  تشکر
جمعه ، ۷ شهریور ۱۳۹۳     ۵:۱۶ ب.ظ #


aligh

Subscriber
136 پست33 تاپیک

کسی نیست جواب منو بده ؟

0  تشکر
جمعه ، ۷ شهریور ۱۳۹۳     ۶:۵۲ ب.ظ #


محمد اسفندیاری

Authorplus
VIP
836 پست10 تاپیک

بنظر من میتونی یه کد SQL بنویسی که بر اساس امتیاز کاربران رو از صعودی به نزولی رتبه بندی کنه....بعد این ترتیب رتبه هارو در یک آرایه ذخیره کن.....کارایی که میخوای روی این آرایه انجام بده و دوباره توی Database ذخیرش کن

1  تشکر
جمعه ، ۷ شهریور ۱۳۹۳     ۱۰:۱۸ ب.ظ #


aligh

Subscriber
136 پست33 تاپیک

ممنون آقا محمد ، اول میخواستم با یک کوئری این کار رو انجام بدم ولی دیدم نمیشه (من بلد نیستم) .

پس از همون راهی که شما گفتید استفاده می کنم (بدون آرایه) .

0  تشکر
جمعه ، ۷ شهریور ۱۳۹۳     ۱۱:۵۶ ب.ظ #


محمد اسفندیاری

Authorplus
VIP
836 پست10 تاپیک

آره اینم میشه

1  تشکر
پست 1 تا 5 (از مجموع 5 پست)

برای پاسخ دادن به این تاپیک باید وارد سایت شوید .