在MySQL 5.1上,如何查询特定分区?

时间:2013-02-20 00:39:14

标签: mysql database-partitioning

我需要在分区表上运行查询,我想通过分区得到一个结果,如下所示:

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

从官方MySQL在线文档中,如果我们有5.6或更高版本,我们可以使用 PARTITION 子句来指定从何处获取数据,但我们目前仍然坚持63年5月1日。无论表的分区方案如何,有没有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

我不相信你能在MySQL 5.1中使用。

您可以解决这个问题 - 无论分区定义如何,您都可以将相同的条件添加到计数中。

例如,如果它是ID列上的范围分区,并且p1是ID< 10000,p2 ID< 20000 然后

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