من چجوری میتونم یک Table که بر اساس یک فیلد مرتب شده را بر اساس همان فیلد به صورت راندوم مرتب کنم یعنی در واقع نامرتب کنم - من از دستور زیر استفاده کردم ولی جواب نداد
کد:select * from quotes order by rand()
Printable View
من چجوری میتونم یک Table که بر اساس یک فیلد مرتب شده را بر اساس همان فیلد به صورت راندوم مرتب کنم یعنی در واقع نامرتب کنم - من از دستور زیر استفاده کردم ولی جواب نداد
کد:select * from quotes order by rand()
سلامنقل قول:
ميخواهيد يك ركورد را بصورت تصادفي انتخاب كنيد؟
در صورتيكه اطلاعات در جدول شما بصورت مرتب شده درج نشده باشند خب وقتي يك query بدون مشخص كردن order به آن بدهيد در واقع اطلاعات را بصورت نامرتب به شما ميدهد.
روشهاي انتخاب :
کد:
Select a random row with MySQL:
SELECT column FROM table
ORDER BY RAND()
LIMIT 1
Select a random row with PostgreSQL:
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1
Select a random row with Microsoft SQL Server:
SELECT TOP 1 column FROM table
ORDER BY NEWID()
Select a random row with IBM DB2
SELECT column FROM table
ORDER BY RAND()
FETCH FIRST 1 ROWS ONLY
Select a random record with Oracle:
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1
من این کد رو تو phpوMysql امتحان کردم جواب گرفتم - بدون order بر اساس ورودی اطلاعات وارد شده مرتب می کند من میخوام هر دفعه یک رکورد تصادفی انتخاب شود از بین 100000 رکورد چون وقت گیره گفتم شاید دستوری باشه که با اجرای آن کل رکوردها جابجا شوند و چون رکوردها جابجا شده اند همون کار راندوم منو انجام میده و نیازی نست هر بار تابع راندوم صدا زده شه و وقت برنامه رو بگیره به صورت پشت سر هم اونها را انتخاب کنم و دیگه نیازی به انتخاب راندوم از بین کل رکوردها نباشه .