sql >> Database teknologi >  >> RDS >> Mysql

UNPIVOT mysql-data til anden tabel

Du skal UNPIVOT dine data. MySQL har ikke en indbygget funktion til at gøre det, så du bliver nødt til at bruge flere forespørgsler.

INSERT INTO `monthlydata` (`id`, `year`, `monthName`, `stat_id`, `cat_id`, `data`) VALUES
SELECT id, year, 'January', stat_id, cat_id, January
    FROM monthly WHERE monthName = 'January'
UNION ALL 
SELECT id, year, 'February', stat_id, cat_id, February
    FROM monthly WHERE monthName = 'February'
UNION ALL 
SELECT id, year, 'March', stat_id, cat_id, March
    FROM monthly WHERE monthName = 'March'
.....

ID kolonne her kan forårsage problemer. Alt efter hvordan du har defineret det. Hvis det er automatisk genereret, kan du fjerne det fra INSERT og lade det blive automatisk genereret. Da du vil have rækker for alle måneder med samme ID , skal du håndtere det scenarie.




  1. MySQL Indsætte i flere tabeller? (Databasenormalisering?)

  2. Eksporter SQLite-database til XML-fil

  3. Er dette en sikker måde at konvertere MySQL-tabeller fra latin1 til utf-8?

  4. Hvordan kalder man oracle-lagret procedure, som inkluderer brugerdefineret type i java?