sql >> Base de Datos >  >> RDS >> Mysql

Ejecute 2 consultas sql con 1 consulta para guardar el resultado de la consulta como formato .csv

No desea que se ejecute como una consulta. Por lo general, es mejor tener muchas consultas pequeñas y simples en lugar de una consulta complicada. De hecho, le sugiero que actualice su código para tener aún más consultas, por ejemplo, el contenido de "no existe()" no debe hacerse como una subconsulta, debe ser una consulta completamente separada para mejorar el rendimiento.

Hay dos partes, primero debe enviar los encabezados HTTP correctos para activar una descarga de CSV:

header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="export.csv";' );

Luego simplemente imprima los datos en formato CSV:

while ($row = mysql_fetch_array($myQuery)) {
  $first = true;
  foreach ($row as $cell) {
    if ($first)
      $first = false;
    else
      print ',';

    print '"' . addslashes($cell) . '"';
  }
  print "\n";
}

Nota:CSV es un formato incorrecto y solo funcionará en algunas ediciones de Microsoft Excel. Dependiendo de dónde viva el usuario (p. ej., Europa), es posible que no funcione correctamente. Sin embargo, para la mayoría de las ediciones de Excel, lo anterior funcionará. No existe una buena solución excepto evitar el uso de CSV.