我正在努力为以下问题找到最佳解决方案。
假设我有一个像这样的表“表”:
id name report_id
1 name1 1
2 name2 3
3 name3 5
4 name1 7
5 name3 8
....................
我想为一组中的每个值选择: ('name1', 'name2') 10 个随机唯一行。
当然,可以使用联合,例如:
(SELECT * FROM Table
WHERE
name='name1'
ORDER BY RAND() LIMIT 10)
UNION
(SELECT * FROM Table
WHERE
name='name2'
ORDER BY RAND() LIMIT 10)
但是,如果我有 100 个唯一名称,我必须选择 10 个随机记录 - 这个查询会有点大。