在兰德订购前限制?

时间:2017-10-22 06:26:17

标签: mysql sql

在此查询中有没有办法在rand下单前限制?

$query = "SELECT username, user_img, user_cover_img FROM users WHERE username IN ('{$username_array}') ORDER BY RAND() LIMIT 8";

似乎rand的顺序并不总是包含我返回的8中需要的用户名。

1 个答案:

答案 0 :(得分:1)

您可以使用内部查询在外部查询中应用limit然后order by,如下所示。

SELECT *
FROM (
    SELECT username
        ,user_img
        ,user_cover_img
    FROM users
    WHERE username IN ('{$username_array}') LIMIT 8
    ) t
ORDER BY RAND();

您的查询将类似于

$query = "SELECT * FROM (SELECT username,user_img,user_cover_img FROM users WHERE username IN ('{$username_array}') LIMIT 8) t ORDER BY RAND()";