gpt4 book ai didi

mysql - 在mysql中选择随机行并限制在每个组内

转载 作者:行者123 更新时间:2023-11-29 05:25:56 24 4
gpt4 key购买 nike

我无法将 12 个 mysql 查询减少到一次调用中。我需要按随机顺序按 product_type_id 对结果进行分组,然后将每组限制为 7:

SELECT * FROM products WHERE product_type_id=1 AND deleted='n' ORDER BY RAND() LIMIT 7;
SELECT * FROM products WHERE product_type_id=2 AND deleted='n' ORDER BY RAND() LIMIT 7;
...
SELECT * FROM products WHERE product_type_id=12 AND deleted='n' ORDER BY RAND() LIMIT 7;

目前每个 product_type_id (1,2,3,...12) 共有 12 个查询。任何帮助表示赞赏。

最佳答案

因此每个产品类型需要 7 条随机记录(7 * 12 条记录)。乍一看,您只是在寻找工会。

(SELECT * FROM products WHERE product_type_id=1 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
(SELECT * FROM products WHERE product_type_id=2 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
...
UNION ALL
(SELECT * FROM products WHERE product_type_id=12 AND deleted='n' ORDER BY RAND() LIMIT 7)

如果您需要对整个结果集进行排序,那么您可以在整个 UNION 之后使用一个 ORDER BY 子句。

关于mysql - 在mysql中选择随机行并限制在每个组内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com