Kad*_*Kad 9 mysql sql partitioning database-partitioning mysql-5.1
我将300MB表分区并尝试p0使用此命令从分区进行选择查询
SELECT * FROM employees PARTITION (p0);
Run Code Online (Sandbox Code Playgroud)
但我得到了以下错误
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '(p0)' at line 1
Run Code Online (Sandbox Code Playgroud)
如何编写select查询以从特定分区获取数据?
Rav*_*avi 12
根据您的MySql版本,PARTITION关键字在MySQL 5.6.2之前不存在.您将使用MySQL 5.5甚至5.1,但不是5.6.如果你正在使用MySQL 5.1,那么你可以做一些解决方法,如下所示
SELECT partition, count(ID)
FROM
(
SELECT ID,
case when condition then p1
when condition then p2
.....
end as partition
FROM
table
) s1
GROUP BY partition
Run Code Online (Sandbox Code Playgroud)
注意:上述解决方案只是解决方法,以满足您的需求输出.
您还可以尝试此查询来计算分区的总行数.
SELECT table_rows as 'count(*)' FROM information_schema.partitions WHERE table_schema = schema() and table_name ='employees' and partition_name = 'p0';
Run Code Online (Sandbox Code Playgroud)
注意:您可以更改table_schema = schema()为table_schema = 'yourschema'
实际上,自MySQL 5.6以来支持的语法是:
SELECT * FROM table PARTITION (partitionName);
Run Code Online (Sandbox Code Playgroud)