跨多个类别随机选择数据库
这里提出的挑战是从数据库中的每个类别中检索单个随机记录。 Items 表包含这些记录,每条记录都分配给相应的 Category 表指定的类别。
要完成此任务,可以通过 RAND() 函数和 LIMIT 1 子句利用 MySQL 固有的随机性。然而,这里的独特之处是需要为每个不同的类别选择一个随机记录。
以下查询优雅地解决了这一挑战:
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
此查询的结构可以检索一个每个类别的随机记录:
虽然这种方法可能不具备出色的速度,但它有效地解决了跨多个随机记录选择的挑战。类别。欢迎提出其他优化建议,进一步增强此查询的实用性。
以上是如何从MySQL数据库中的每个类别中随机选择一条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!