Php 使用MySQL如何选择必须包含较小组的大型组?

Php 使用MySQL如何选择必须包含较小组的大型组?,php,mysql,Php,Mysql,假设我想从48000行的数据库中随机选择5000行,但我想确保30行(我有唯一的ID)是该选择的一部分。在MySQL中有没有这样做的方法 id、问题、答案、类别等。您可以先在占位符数组中选择您有id的记录,然后使用RAND()选择余额 对于您描述的表大小,性能应该很好 正如比尔所说的,你可以在一个查询中使用UNION SELECT * FROM table WHERE id IN (list_of_ids) UNION SELECT * FROM table WHERE id NOT IN (l

假设我想从48000行的数据库中随机选择5000行,但我想确保30行(我有唯一的ID)是该选择的一部分。在MySQL中有没有这样做的方法


id、问题、答案、类别等。

您可以先在占位符数组中选择您有id的记录,然后使用RAND()选择余额

对于您描述的表大小,性能应该很好

正如比尔所说的,你可以在一个查询中使用UNION

SELECT * FROM table WHERE id IN (list_of_ids)
UNION
SELECT * FROM table WHERE id NOT IN (list_of_ids) ORDER BY RAND() LIMIT 4970

对。。显示数据样本和实验结果。。。以及您尝试编写的查询。因此,基本上,您希望选择所需的30行,然后再选择4970个随机行?请在询问之前阅读,因为这些将帮助您从社区获得更多更好的答案。
SELECT * FROM table WHERE id IN (list_of_ids)
UNION
SELECT * FROM table WHERE id NOT IN (list_of_ids) ORDER BY RAND() LIMIT 4970