7
Załóżmy, że mam poniższej tabeli z jednej kolumnie:Utwórz tabelę z nazwami kolumn pochodzących z wartościami rzędu innej tabeli
Table_1
-----------
| nameCol |
-----------
| A |
| A |
| B |
| C |
-----------
I chcę utworzyć nową tabelę z następującymi nazwy kolumna:
Table_2
| pk | A | B | C |
Oznacza to, że dane z jednej t stanie się nazwami kolumn drugiej tabeli. Na pewnym poziomie może występować pivot, ale nie jestem w stanie uzyskać odpowiedzi.
Próbowałem:
create table Table_2 (
select group_concat(distinct(nameCol), " varchar(50), ")
from Table_1
);
Dziękuję bardzo za odpowiedź. Próbowałem powyższego zapytania. Jednak ciąg kwerendy wewnątrz mojej zmiennej @sql jest bardzo długi (ponieważ istnieje duża liczba kolumn). Powoduje to problemy w linii "PREPARE stmt". Wydaje się, że wykreśla większość ciągu zapytania poza punkt, a niekompletny łańcuch prowadzi do błędu składni. –
@AlptiginJalayr Myślę, że problem dotyczy funkcji GROUP_CONCAT, jej maksymalna długość jest ograniczona, ale można zwiększyć ten limit za pomocą, na przykład, 'SET SESSION group_concat_max_len = 1000000;' – fthiella
Próbowałem tego. Jednak to nie jest błąd group_concat, ale PREPARE stmt Z [at] sql zapytania. Wiem o tym, ponieważ wykonałem SELECT [at] sql before PREPARE i zwróciłem kompletne zapytanie. –