【问题标题】:Mysql select rows with limit to different columnMysql选择限制到不同列的行
【发布时间】:2016-09-28 05:40:19
【问题描述】:

表格结构如下

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

【问题讨论】:

    标签: mysql


    【解决方案1】:

    使用 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 它提供了更复杂的解决方案。

    【讨论】:

    • 是处理数千行时的一种有效方法。表是例如
    • 不,有这么多行,您可以编写一个存储过程,为您创建一个具有所需输出的表。该过程仍然可以由“简单”SQL 组成。如果您想通过一个查询来解决它,请查看我在回答中链接的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多