【问题标题】:On MySQL 5.1, how can I query a specific partition?在 MySQL 5.1 上,如何查询特定分区?
【发布时间】:2013-02-20 00:39:14
【问题描述】:

我需要在分区表上运行查询,并且我想要按分区的结果,如下所示:

partition     result     count
----------- ----------   ------
    p1        apples      2
    p1        oranges     3
    p2        apples      10
    p2        oranges     15

从官方的 MySQL 在线文档中,如果我们有 5.6 或更高版本,我们可以使用 PARTITION 子句来指定从哪里获取数据,但我们目前停留在5.1.63。无论表的分区方案如何,是否有一种简单的方法可以做到这一点?

【问题讨论】:

    标签: mysql database-partitioning


    【解决方案1】:

    我不相信你可以在 MySQL 5.1 中。

    您可以解决它 - 无论分区定义如何,您都可以将其作为条件添加到您的计数中。

    例如如果是ID列上的范围分区,p1的ID

    SELECT result, partition, count(ID)
    FROM
    (
        SELECT result, ID,
          case when ID < 10000 then p1
               when ID < 20000 then p2
          .....
          end as partition
    
        FROM
          table
    ) s1
    GROUP BY partition, result
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 2020-03-03
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      相关资源
      最近更新 更多