Я пытаюсь понять, что это навеки, поэтому решил повернуть сюда.
В настоящее время у меня есть база данных с тоннами строк, но в качестве примера она выглядит следующим образом:
___________________________________
| column1 | column2 | column3 |
|-----------------------------------|
| 123 | UK | answeruk1 |
| 321 | UK | answeruk3 |
| 111 | EN | answeren2 |
| 321 | EN | answeren3 |
| 111 | FR | answerfr2 |
| 123 | FR | answerfr1 |
| 111 | UK | answeruk2 |
| 321 | FR | answerfr3 |
| 123 | EN | answeren1 |
Я пытаюсь, чтобы это было добавлено в новую таблицу, чтобы структура выглядела следующим образом:
_______________________________________________
| column1 | column2 | column3 | column4 |
|-----------|-----------|-----------|-----------|
| 123 | answerfr1 | answeruk1 | answeren1 |
| 321 | answerfr3 | answeruk3 | answeren3 |
| 111 | answerfr2 | answeruk2 | answeren2 |
Это значит, что все они организованы по столбцу1, но в столбцах есть соответствующий код страны, найденный в столбце2
Я попытался использовать INSERT INTO, но я не могу понять, как я могу сортировать 3 столбца одновременно с 1 запросом. Есть также тонна (около 15 000-20 000) идентификатора (число, найденное в столбце 1).
Я также пробовал использовать PHP, который, я думаю, может быть единственным способом сделать это, возможно, в течение какого-то заявления, чтобы перебрать все идентификаторы?
Заранее спасибо.
Вы можете использовать группу по запросу и создать базу данных в одной команде:
mysql> select * from tt;
+------+------+------+
| id | att | val |
+------+------+------+
| 1 | a | b1 |
| 1 | b | b2 |
| 1 | c | b3 |
| 2 | a | b4 |
| 2 | b | b5 |
+------+------+------+
5 rows in set (0.00 sec)
mysql> create table tt2 select id, group_concat(case when att="a" then val end) a, group_concat(case when att="b" then val end) b, group_concat(case when att="c" then val end) c from tt group by id;
Query OK, 2 rows affected (0.10 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from tt2;
+------+------+------+------+
| id | a | b | c |
+------+------+------+------+
| 1 | b1 | b2 | b3 |
| 2 | b4 | b5 | NULL |
+------+------+------+------+
2 rows in set (0.00 sec)