php - array_rand



ترتيب MySQL بواسطة rand() ، اسم ASC (4)

استخدم طلب البحث الفرعي:

SELECT * FROM 
(
    SELECT * FROM users ORDER BY rand() LIMIT 20
) T1
ORDER BY name 

يحدد الاستعلام الداخلي 20 مستخدمًا بشكل عشوائي ويطلب طلب البحث الخارجي من المستخدمين المحددين بالاسم.

https://ffff65535.com

وأود أن تأخذ قاعدة بيانات القول ، 1000 مستخدم ، واختيار 20 منها عشوائية ( ORDER BY rand() ، LIMIT 20 ) ثم طلب المجموعة الناتجة عن الأسماء. لقد توصلت إلى الاستعلام التالي الذي لا يعمل كما كنت آمل.

SELECT * FROM users WHERE 1 ORDER BY rand(), name ASC LIMIT 20


استخدم طلب البحث الفرعي:

SELECT * FROM (
    SELECT * FROM users ORDER BY RAND() LIMIT 20
) u
ORDER BY name

أو صلة لنفسها:

SELECT * FROM users u1
INNER JOIN (
    SELECT id FROM users ORDER BY RAND() LIMIT 20
) u2 USING(id)
ORDER BY u1.name


SELECT  *
FROM    (
        SELECT  *
        FROM    users
        WHERE   1
        ORDER BY
                rand()
        LIMIT 20
        ) q
ORDER BY
        name




random