2016-08-03 416 views
0

我想转储一张表,但屏蔽了电子邮件,并非如此。如何使用SELECT语句mysqldump表?

mysql -h <ip> -u <username> -P <port> -p --execute=" 
SELECT 
    au.id, 
    CASE WHEN (au.email NOT LIKE '%@abcd.com%' AND au.email NOT LIKE '%@abcd_test.com%') THEN CONCAT('user+', u.id, '@abcd_test.com') ELSE au.email END as email, 
    au.user_id 
    FROM <dbname>.<tablename> as au 
    LEFT JOIN <dbname>.<tablename2> as u 
" > ~/<tablename>.sql 

我试着运行这个命令,但是它没有创建一个可以导入的转储。

实际上,还有一些其他的表有电子邮件列,需要类似的屏蔽,理想情况下,我希望有一个像这样匿名的电子邮件转储整个数据库。

如果这是不可能的,我至少希望有一个带有屏蔽电子邮件的表的转储,比如shell命令的输出可以单独导入到mysql数据库中。

如何使用SELECT查询转储表?或者我可以导入上述命令的输出吗?

这是一个生产数据库,所以我想避免在这个数据库上创建一个新表,或者做任何可能导致这个数据库混乱的事情。从table_name

回答

0

SELECT * INTO OUTFILE 'dump.sql',其中condition

+0

此文件无法导入。 – user2418202