У меня есть таблица:Преобразовать столбцы в строки
+--------------+-------+--------+----------+
| attribute_id | color | brand | category |
+--------------+-------+--------+----------+
| 1 | red | honda | cars |
| 2 | blue | bmw | cars |
| 3 | pink | skonda | vans |
+--------------+-------+--------+----------+
Я хотел бы, чтобы преобразовать его в следующем:
+--------------+---------+
| attribute_id | keyword |
+--------------+---------+
| 1 | red |
| 2 | blue |
| 3 | pink |
| 1 | honda |
| 2 | bmw |
| 3 | skonda |
| 1 | cars |
| 2 | cars |
| 3 | vans |
+--------------+---------+
Единственный способ, которым я могу думать о том, чтобы использовать UNION
сек, как это :
SELECT attribute_id, color from attributes
UNION ALL
SELECT attribute_id, brand from attributes
UNION ALL
SELECT attribute_id, category from attributes
Вышеупомянутый способ немного громоздкий, тем более, что для моего реального использования понадобится объединить несколько таблиц для каждого Выбрать.
Есть ли более простая или менее копия/вставка Способы написать это?
Важным является то, что * вы пытаетесь сделать с данными? – Kermit
@FreshPrinceOfSO - У меня плохо спроектированная таблица со многими столбцами, я бы хотел заполнить мою недавно созданную таблицу ключевых слов. Я буду использовать каждый из столбцов из исходной таблицы в качестве ключевого слова. – Drahcir
Я бы просто выбрал * из вашего стола, а затем обработал его на любом языке, который вы используете. –