Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uruchom 2 zapytania sql z 1 zapytaniem, aby zapisać wynik zapytania w formacie .csv

Nie chcesz, aby działał jako jedno zapytanie. Zwykle lepiej jest mieć wiele małych, prostych zapytań zamiast jednego skomplikowanego zapytania. W rzeczywistości sugerowałbym zaktualizowanie kodu, aby mieć jeszcze więcej zapytań, na przykład zawartość „nie istnieje()” nie powinna być wykonywana jako podzapytanie, powinno to być całkowicie oddzielne zapytanie, aby poprawić wydajność.

Są dwie części, najpierw musisz wysłać prawidłowe nagłówki HTTP, aby uruchomić pobieranie CSV:

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

Następnie wydrukuj dane w formacie CSV:

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

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

Uwaga:CSV to zły format i będzie działać tylko w niektórych wersjach programu Microsoft Excel. W zależności od miejsca zamieszkania użytkownika (np. Europa) może nie działać poprawnie. Jednak w większości wydań programu Excel powyższe będzie działać. Nie ma dobrego rozwiązania poza unikaniem używania CSV.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz a podzapytanie

  2. Zapytanie Mysql z Left Join jest zbyt wolne

  3. Zmaterializowane widoki z MySQL

  4. Komendy MySqli nie są zsynchronizowane; nie możesz teraz uruchomić tego polecenia

  5. nie można dodać tabeli db mysql w źródle danych vb