2013-02-20 2 views
0

Мне нужно выполнить запрос на секционированную таблице, и я хотел бы результат на перегородке, например, так:В MySQL 5.1, как я могу запросить определенный раздел?

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

из официальных документов MySQL в Интернете, если бы мы имели 5.6 или более позднюю версию, мы бы можете использовать опцию PARTITION, чтобы указать, где получить данные, но мы в настоящее время застряли в 5.1.63. Есть ли простой способ сделать это, независимо от схемы разбиения таблицы?

ответ

2

Я не верю, что вы можете в MySQL 5.1.

Вы можете обойти это, хотя - независимо от определения раздела, которое вы можете добавить так же, как условие к вашему счету.

Например, если это диапазон раздел на колонке ID и p1 это идентификатор < 10000, р2 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