Mar*_*ers 60
使用子查询:
SELECT * FROM
(
SELECT * FROM users ORDER BY rand() LIMIT 20
) T1
ORDER BY name
Run Code Online (Sandbox Code Playgroud)
内部查询随机选择20个用户,外部查询按名称对所选用户进行排序.
您可以使用两个单独的查询,一个用于获取行数,另一个用于选择随机行,而不是使用子查询.
SELECT COUNT(id) FROM users; #id is the primary key
Run Code Online (Sandbox Code Playgroud)
然后,随机获得20行.
$start_row = mt_rand(0, $total_rows - 20);
Run Code Online (Sandbox Code Playgroud)
最后的查询:
SELECT * FROM users ORDER BY name ASC LIMIT $start_row, 20;
Run Code Online (Sandbox Code Playgroud)