我已经阅读了MySQL ORDER BY RAND()函数的一些替代方法,但大多数替代方案仅适用于需要单个随机结果的位置.
有没有人知道如何优化返回多个随机结果的查询,例如:
SELECT u.id,
p.photo
FROM users u, profiles p
WHERE p.memberid = u.id
AND p.photo != ''
AND (u.ownership=1 OR u.stamp=1)
ORDER BY RAND()
LIMIT 18
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何为每个组选择固定数量的行?
例如......如果我有这个表(按颜色排序):
--------------
| id | color |
--------------
| 95 | red |
| 7 | red |
| 44 | red |
| 46 | red |
| 49 | red |
| 24 | green |
| 37 | green |
| 91 | green |
| 88 | green |
| 44 | blue |
| 10 | blue |
| 11 | blue |
--------------
Run Code Online (Sandbox Code Playgroud)
我有办法从每种颜色中获取2行吗?例:
--------------
| id | color |
--------------
| …Run Code Online (Sandbox Code Playgroud)