表的结构如下
Posts (
id int,
category_id int,
popularity int,
)
我想选择 5 个类别,每个类别有 5 行。
Like Select * from posts where Category_id in ("1", "2", "3", "4", "5") limit 5 -- 通过选择 5 来限制每个 Category_id
最佳答案
使用 UNION 连接多个 select 语句以显示一个组合结果。
这可能是解决您的问题的最简单方法。
像这样:
SELECT * FROM posts where category_id=1 limit 5
UNION
SELECT * FROM posts where category_id=2 limit 5
UNION
SELECT * FROM posts where category_id=3 limit 5
UNION
SELECT * FROM posts where category_id=4 limit 5
UNION
SELECT * FROM posts where category_id=5 limit 5
同样的问题已经被问过: MySQL: Limiting number of results received based on a column value | Combining queries 它提供了更复杂的解决方案。
关于Mysql 选择行并限制不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524865/