دریافت رتبه یک کاربر بر اساس یک ستون خاص در جدول
سلام
من در دیتابیس خود جدولی دارم به شرح زیر
| user_point | user_name | user_id |
| 1235 | ali | 1 |
| 4125 | naghi | 2 |
| 1354 | taghi | 3 |
من میخوام بای یک کوئری روی این جدول بفهمم جایی که user_name برابر هست با naghi بر اساس مقدار درج شده در ستون user_point کاربر saleh در جایگاه چندم قرار داره
پایگاه داده مورد استفاده : mysql
زبان واسط پایگاه داده: php
تشکر
با استفاده از کئوری زیر کل تیبل رو بکشید بیرون :
SELECT * FROM tbl_name ORDER BY user_point ASC
مقادیر بدست آمده را به داخل یک آرایه بریزید .
با استفاده از دستور زیر شماره خانه آرایه که مثلا saleh داخل آن قرار دارد را بدست بیاورید و در نهایت با عدد 1 جمع کنید :
$index= array_search('saleh', $array);// $index= 2;
درود بر شما اولین راه حلی که شاید به ذهن هر کسی برسه همینه که عرض کردید همیچین کاری وقتی ما بالای یک میلیون کاربر داشته باشیم اونم توی 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;
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .