آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دریافت رتبه یک کاربر بر اساس یک ستون خاص در جدول

Saleh  9 سال پیش  9 سال پیش
0 0

سلام
من در دیتابیس خود جدولی دارم به شرح زیر

user_point user_name user_id
1235 ali 1
4125 naghi 2
1354 taghi 3

من میخوام بای یک کوئری روی این جدول بفهمم جایی که user_name برابر هست با naghi بر اساس مقدار درج شده در ستون user_point کاربر saleh در جایگاه چندم قرار داره

پایگاه داده مورد استفاده : mysql

زبان واسط پایگاه داده: php

تشکر

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  9 سال پیش
+1 0

با استفاده از کئوری زیر کل تیبل رو بکشید بیرون :

 SELECT * FROM tbl_name ORDER BY user_point ASC

مقادیر بدست آمده را به داخل یک آرایه بریزید .
با استفاده از دستور زیر شماره خانه آرایه که مثلا saleh داخل آن قرار دارد را بدست بیاورید و در نهایت با عدد 1 جمع کنید :

 $index= array_search('saleh', $array);// $index= 2;
پاسخ به سوال 
Saleh  9 سال پیش
0 0

درود بر شما اولین راه حلی که شاید به ذهن هر کسی برسه همینه که عرض کردید همیچین کاری وقتی ما بالای یک میلیون کاربر داشته باشیم اونم توی php یعنی خدا حافظ سرور!

منطقی ترین راه حلی که تا کنون به دست آوردم استفاده از کد زیر هستش البته نظر اساتید هم شرطه اگه ما رو قابل بدونن.

 البته این کوری هم به نوبه خودش بازم پردازش سنگینی اما اگه قراره همچین پردازشی انجام بشه بهتره داخل همون mysql انجام بشه تا php

 SET @row=0;
SELECT row from ( SELECT (@row := @row +1) as row , user_name, user_point From tableName
ORDER BY user_point DESC) AS tbl WHERE tbl.user_name= saleh;

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .