Se houver PHP instalado na máquina que você está usando, você pode escrever um script PHP para fazer isso. Requer que a instalação do PHP tenha a extensão MySQL instalada.
Você pode chamar o interpretador PHP a partir da linha de comando da seguinte maneira:
php --php-ini path/to/php.ini your-script.php
Estou incluindo o --php-ini
switch, porque você pode precisar usar sua própria configuração de PHP que permite a extensão MySQL. No PHP 5.3.0+, essa extensão é ativada por padrão, de modo que não é mais necessário usar a configuração para ativá-la.
Então você pode escrever seu script de exportação como qualquer script PHP normal:
<?php
#mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("mydb") or die(mysql_error());
$result = mysql_query("SELECT * FROM table_with_the_data p WHERE p.type = $typeiwant");
$result || die(mysql_error());
while($row = mysql_fetch_row($result)) {
$comma = false;
foreach ($row as $item) {
# Make it comma separated
if ($comma) {
echo ',';
} else {
$comma = true;
}
# Quote the quotes
$quoted = str_replace("\"", "\"\"", $item);
# Quote the string
echo "\"$quoted\"";
}
echo "\n";
}
?>
A vantagem desse método é que ele não tem problemas com os campos varchar e texto, que possuem texto contendo novas linhas. Esses campos são citados corretamente e essas novas linhas serão interpretadas pelo leitor CSV como parte do texto, não como separadores de registros. Isso é algo que é difícil de corrigir depois com o sed ou algo assim.
REPLACE()
em sua consulta para que as aspas não sejam exibidas.