MySQL строк в столбцы, тип текста

0

Если у меня есть таблица данных типа

Option_id|Component_id|Option_parent|Option_name|Option_value
1         1            0             id          
2         1            1             option1     Some value
3         1            1             option2     Other
4         1            0             id          Value
5         1            4             option1     More
6         1            4             option2     More&More

Можно ли возвращать строки с именем option_name в качестве столбцов при предоставлении "option_name" для выбора и component_id. Параметр option_name с "id" будет родителем, использующим его "option_id".

So Select option1, option2 where Component_id = 1 returns

Option1    |Option2
Some Value  Other
More        More&More

Я в основном пытаюсь понять, могу ли я иметь общую таблицу, которая может использоваться компонентами для хранения разных объемов данных. Я знаю, что могу использовать объединения, но задавался вопросом, может ли быть лучший способ, поскольку один компонент может иметь 10 параметров.

Теги:
pivot

1 ответ

1
Лучший ответ

Использование:

  SELECT MAX(CASE WHEN t.option_name = 'option1' THEN t.option_value END) AS option1,
         MAX(CASE WHEN t.option_name = 'option2' THEN t.option_value END) AS option2
    FROM TABLE t
   WHERE t.option_name IN ('option1', 'option2')
GROUP BY t.component_id, t.option_parent
  • 0
    Спасибо, именно то, что я искал :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню