رتبه در sql

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

این تاپیک تاکنون 741 بازدید داشته است .

نویسنده پست
پنجشنبه ، 28 آگوست 2014     9:54 ق.ظ #


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  تشکر
جمعه ، 29 آگوست 2014     5:16 ب.ظ #


aligh

Subscriber
136 پست33 تاپیک

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

0  تشکر
جمعه ، 29 آگوست 2014     6:52 ب.ظ #


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

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

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

1  تشکر
جمعه ، 29 آگوست 2014     10:18 ب.ظ #


aligh

Subscriber
136 پست33 تاپیک

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

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

0  تشکر
جمعه ، 29 آگوست 2014     11:56 ب.ظ #


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

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

آره اینم میشه

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

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