微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在mysql中使用“HASH PARTITIONING”查找每个分区中的行数

如何解决在mysql中使用“HASH PARTITIONING”查找每个分区中的行数

我正在阅读一本关于“sql QUERIES”的书,在关于“HASH 分区方法”的部分中,我找到了我将在此处发布的查询。我试图用在“WAMPSERVER”上运行的本地主机来做到这一点。这是查询

CREATE TABLE courses
( id_course INT NOT NULL,course_name VARCHAR(300) NOT NULL,course_level ENUM('beginner','intermediate','advanced')
)
PARTITION BY HASH (id_course)
PARTITIONS 5 (PARTITION C1,PARTITION C2,PARTITION C3,PARTITION C4,PARTITION C5);

之后,我在表中插入了 10 行。这是表格行的图片

enter image description here

之后我试图找出位于每个分区中的行数。这本书建议了这个查询

enter image description here

但问题是书中“partition_rowcount”列的查询输出与我不相似。我(仅供参考)解释说这本书有 4 个分区,并将它们命名为“H1 到 H4”。这是书的输出

enter image description here

我想知道问题出在哪里以及为什么我的输出与书本不同。我知道还有其他查询来查找每个分区中的行,但我无法理解这种差异的原因。

解决方法

您的结果是一个十六进制字符串,表明数据类型出现问题。这在 https://bugs.mysql.com/bug.php?id=56642 中有解释。尝试将 count 显式转换为字符串,以便它可以正常连接其他字符串:

Select concat("# of rows in H1",(cast count(*) as char)) partition_rowcount
From courses partition (c1)
...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。