Export mysql query naar een file

  Mysql / MariaDB

Met mysql kan je eenvoudig de resultaten van query opslaan in een txt file. deze file is dan weer eenvoudig te importeren in Excel, OpenOffice calc, of in een andere database. het wegschrijven naar een file doe je via de optie INTO OUTFILE met eventueel extra opties om velden mee te markeren.

In mijn voorbeeld moet ik data migreren van een oud cms systeem naar een nieuwe cms. we stellen eerst de query samen met de juiste velden.

SELECT sid, title, time, counter FROM phpws_stories WHERE topic='25';

Dit geeft 4 kolommen, deze resultaten willen we in een file geschreven hebben. /tmp/stories.txt

SELECT sid, title, time, counter FROM phpws_stories
WHERE topic='25' 
INTO OUTFILE '/tmp/stories.txt'; 

Dit zal een file aanmaken waar de velden gescheiden zijn door middel van tabs, dit is niet altijd even handig, je kan daarom om extra opties mee geven om velden op een andere manier te scheiden.

SELECT sid, title, time, counter FROM phpws_stories
INTO OUTFILE '/tmp/stories.txt'
FIELDS TERMINATED BY '||'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

In dit voorbeeld zal ieder veld door ” omgeven worden en zijn de velden gescheiden door een dubbelen |, en iedere rij zal op een nieuwe regel geschreven worden. vb:

"75"||"avond wedstrijd AB-Jun/Sen 07-05-1997"||"1997-05-07 20:00:00"||"3467"
"76"||"Instuifwedstrijd AB-Jun/Sen 09-07-1997"||"1997-07-09 20:00:00"||"3551"
...

LET OP. de user waar de mysql database onder draait, moet schrijf permissies hebben in de directory waar je de file aanmaakt, verder mag de file ook niet al bestaan. dit resulteert in foutmeldingen.