ورود

نسخه کامل مشاهده نسخه کامل : انتخاب رندم در بانک



imanit
12-02-2012, 16:16
با چه دستوری میشه یه انتخاب رندم از سطرهای یک جدول در بانک mysql داشت ؟
یعنی در هر بار بازدید از صفحه خاص یک مقدار تصادفی از رکوردهای یک جدول رو به نمایش گذاشت ؟

parstech
12-02-2012, 21:35
با فرض این که نمی دونید چندتا رکورد در جدول تون وجود داره از این روش میتونید استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

eAmin
12-02-2012, 21:52
خود mysql بصورت درونی تابعی برای این منظور درنظر گرفته.
مثال بالا به اینصورت میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]_rand

parstech
12-02-2012, 22:34
خود mysql بصورت درونی تابعی برای این منظور درنظر گرفته.
مثال بالا به اینصورت میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]_rand

فرمایش ایشون رو به این شکل تکمیل میکنم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

neopersia
12-02-2012, 23:15
به نظر من روشی که در پست #3 معرفی شد (به صورت اصلاح شده در پست #4) مناسبتره. البته ظاهراً در جدولهایی که تعداد رکورد خیلی زیاد دارند (در حد میلیون) این روش یک مقدار کنده

در تعداد رکورد بالا بهتره از روشی که در پست #2 گفته شد استفاده کنید که البته اون هم یک مقدار ویرایش لازم داره تا بهینه سازی بشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

یا اینکه میشه همه کارها رو از طریق mysql و با یک کوئری انجام داد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته من هیچ کدوم از این روش ها رو روی جدولی با تعداد رکورد خیلی زیاد تست نکردم و فقط تئوری میگم. فرض هم بر این هست که فیلد id ایندکس شده هست و بنابراین شمارش کل رکوردها خودش یه دردسر جدید ایجاد نمیکنه!