From MySQL to MailChimp via CSV
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!
Didn’t know that! Thanks for sharring :) Might be handy one day.
[code]
select
concat(‘lastname’,char(44),’firstname’,char(44),’email’)
into outfile ‘file.csv’;
[/code]
I generally use concat() to generate csv file for certain clients.
While I succeded in importing from TXT with tab separated values,
I am struggling to create a CSV that can import email, first name, last name.
Can U please send me a CSV template of yours?
With dummy data of course.
Best
Riccardo