Today I needed to pull email addresses for people who had signed up to a thing out of MySQL and into MailChimp so that I could actually email them about the thing. MySQL actually has a very cute feature for exporting the results of an SQL query as a CSV file, which I had to look up to remember how to do it. It goes something like this:
My original query*
select u.username, u.email, a.account_name from users u inner join accounts a on a.user_id = u.id where a.status_id = 2;
To write this to a file, we use MySQL’s
SELECT ... INTO OUTFILE feature, so my query suddenly looks like this:
select u.username, u.email, a.account_name into outfile '/tmp/users-extract.csv' from users u inner join accounts a on a.user_id = u.id where a.status_id = 2;
By default, this is actually a tab-separated file rather than technically a comma-separated one, but there’s some excellent documentation on how to denote the different fields and lines if you need a different format. I found that the defaults emitted by my server (which is probably mostly vanilla settings) were digested perfectly easily by mailchimp.
If you need to create a CSV file from MySQL by exporting the results of a query – then I hope this post helps! If you have any additional tips, do leave a comment.
* not my actual query, as that went on at some length!