یافتن 100 مقدار به صورت رندم بدون تکرار

ALYREZA

Member
سلام
بهترین روش برای خواندن مثلا 100 مقدار از دیتابیس و نمایش آنها به صورت رندم بدون نمایش تکراری یا جا انداختن رکوردی ، چیست ؟
اگر مثالی همراه با کد بزنید ممنون میشم:cool:
با تشکر:rose:
 
آخرین ویرایش:

kassit

Member
سوال خیلی کلیه دوست عزیز،
چیزی شبیه این باید استفاده بشه

کد:
SELECT DISTINCT value FROM table ORDER BY RAND()
 

ALYREZA

Member
نه منظورم رو نگرفتی!
فیلد تکراری وجود نداره که از distinct استفاده کنم بعدش با rand پدر mysql در میآد


فکر کن صد تا عدد غیر تکراری و نیز می تونه این صدتا پشت سرهم نباشه ، حالا بهترین راه برای انتخاب این صد عدد به صورت رندم و غیر تکراری چیست ؟

من میگم این صد عدد را داخل یه آرایه بریزیم بعد به صورت رندم یه کلید از این آرایه را انتخاب کنه و بعد به خروجی ببره و بعد اون کلید را از آرایه پاک کنه ؟!
نظرتون چیه ؟
 

kassit

Member
تفاوتی چندانی نداره دوست عزیز، فقط باید DISTINCT حذف بشه.
اگه قرار بود پدر MySQL با 100 تا رکورد و یه RAND در میومد باید توسعه دهندگانش تا حالا بازنشست شده بودن دوست گرامی. اتفاقی که در استفاده از RAND در این صد رکورد می افته اصلا قابل ارزیابی نیست و این موضوع تا 100 هزار رکورد هم مشکلی پیش نمیاره.

ریختن مقدادیر توی آرایه می تونه مشکل رو حل کنه اما یه کار اضافه است. ضمن اینکه با یک shuffle هم می شه آرایه رو تضادفی مرتب کرد و نیازی به استفاده از اندیس های تصادفی نیست.
 

جدیدترین ارسال ها

بالا