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

Posted

技术标签:

【中文标题】在 MySQL 5.1 上,如何查询特定分区?【英文标题】:On MySQL 5.1, how can I query a specific partition? 【发布时间】: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。无论表的分区方案如何,是否有一种简单的方法可以做到这一点?

【问题讨论】:

【参考方案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

【讨论】:

以上是关于在 MySQL 5.1 上,如何查询特定分区?的主要内容,如果未能解决你的问题,请参考以下文章

mysql怎么查看是否支持分区

mysql的分区

17.Mysql分区

如何在 Big Query 的标准 SQL 中使用通配符为特定分区查询多个表

mysql中数百万行的基于键的分区

mysql表分区的使用和底层原理