从 MySQL 中的每个类别中选择单个随机记录
要从指定数据库中的每个类别中检索随机项目,需要使用两个 -建议采用阶段方法。首先,使用查询以随机顺序组合项目和类别表:
SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND();
此查询将以随机顺序显示连接到各自类别的所有项目。要将选择限制为每个类别一项,请将上一个查询嵌套在部分 GROUP BY 语句中:
SELECT * FROM ( SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND() ) AS shuffled_items GROUP BY cid;
此部分 GROUP BY 确保每个类别仅包含一个随机选择的项目。请务必注意,ORDER BY 子句必须在 GROUP BY 子句之前应用,此方法才能正常工作。
虽然此方法可能不是最快的,但它提供了一种选择单个随机记录的可靠方法来自 MySQL 数据库中的每个类别。
以上是如何从MySQL中的每个类别中随机选择一条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!