select concat( 'mysqldump' , ' --user=wcm_dwh' , ' --password=wcm_dwh' , ' --no-create-info' , ' --where="' , case p2.partition_method when 'hash' then concat( p2.partition_expression, ' % ' , (select count(*) from information_schema.partitions p3 where p3.table_schema = p2.table_schema and p3.table_name = p2.table_name) , ' = ', (p2.partition_ordinal_position - 1) ) when 'list' then concat( p2.partition_expression , ' in (', p2.partition_description, ')' ) when 'range' then concat( coalesce( concat( p2.partition_expression , ' >= ' , p1.partition_description , ' and ' ) , '' ) , concat( p2.partition_expression , ' < ' , p2.partition_description ) ) end , '" ', p2.table_schema , ' ', p2.table_name , ' > ' , p2.table_schema, '.', p2.table_name , '.', p2.partition_name, '.sql' ) from information_schema.partitions p1 right join information_schema.partitions p2 on p1.table_schema = p2.table_schema and p1.table_name = p2.table_name and p1.partition_ordinal_position + 1 = p2.partition_ordinal_position where p2.table_schema = schema() and p2.partition_method in ('hash', 'list', 'range')