2014-09-30 8 views
2

В настоящее время я следующий код MySQL вошел в PHPMyAdmin:MYSQL - Как отделить значения в столбцах - Concat

select Product_ID, group_concat(`Name` separator ',') as `Spec` 
from 
( 
select Product_ID, concat(`Name`, ':', 
group_concat(`Value` separator ',')) as `Name` 
from product_spec_list 
group by Product_ID, `Name` 
) tbl 
group by Product_ID 

Который производит:

ID    Name 
3 Shielded:0,Type:General Purpose 
4 Shielded:0,Type:General Purpose 

и т.д. с длинным списком идентификаторов продуктов с именами и значениями, разделенными: и.

Как отделить значения от столбцов, названных 'Name'?

E.g.

ID Shielded  Type 
3  0  General Purpose 
4  0  General Purpose 

Существует около 40 различных Имен значений.

Спасибо за любую помощь

+4

Google: "MySQL стержень" или "MySQL динамического поворота". Если вы не знаете имена столбцов, вам нужен динамический стержень. –

ответ

0

Я не проверял, но я имею в виду что-то вроде этого:

SELECT Product_ID AS `ID` 
    , GROUP_CONCAT(IF(Name="Shielded", values, "") SEPARATOR "") AS `Shielded` 
    , GROUP_CONCAT(IF(Name="Type", values, "") SEPARATOR "") AS `Type` 
FROM 
    (SELECT Product_ID, Name, GROUP_CONCAT(value SEPARATOR ',') AS values 
    FROM product_spec_list 
    GROUP BY Product_ID, Name 
) AS subQ 
GROUP BY Product_ID; 
Смежные вопросы