exists を指定して mysqldump を行う

mysqldump のオプションで -w を利用すると、where 句で絞り込むことができるようになりますが、 ここで exists を指定して table の連結を行って絞り込むこともできます。

mysqldump -uroot -p --default-character-set=utf8 --single-transaction test1 -t "-w exists (select * from test2 t1 where t1.id not in(1,2,3) and t1.update_date < '2014-09-29' and test1.test_id = t1.test_id)" > dump.sql