在此查询中有没有办法在rand下单前限制?
$query = "SELECT username, user_img, user_cover_img FROM users WHERE username IN ('{$username_array}') ORDER BY RAND() LIMIT 8";
似乎rand的顺序并不总是包含我返回的8中需要的用户名。
答案 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()";