sql >> Databáze >  >> RDS >> Mysql

Spusťte 2 dotaz SQL s 1 dotazem pro uložení výsledku dotazu ve formátu CSV

Nechcete, aby to běželo jako jeden dotaz. Obvykle je lepší mít spoustu malých jednoduchých dotazů místo jednoho složitého dotazu. Ve skutečnosti bych navrhoval, abyste aktualizovali svůj kód, aby měl ještě více dotazů, například obsah "neexistuje()" by neměl být prováděn jako dílčí dotaz, měl by to být zcela samostatný dotaz pro zlepšení výkonu.

Existují dvě části, nejprve musíte odeslat správné záhlaví HTTP, aby se spustilo stahování CSV:

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

Poté stačí data vytisknout ve formátu CSV:

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

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

Poznámka:CSV je špatný formát a bude fungovat pouze v některých edicích aplikace Microsoft Excel. V závislosti na tom, kde uživatel žije (např.:Evropa), nemusí fungovat správně. Pro většinu edic Excelu však bude výše uvedené fungovat. Neexistuje žádné dobré řešení kromě toho, že se vyhnete použití CSV.




  1. Existuje způsob, jak převést všechna existující data tabulky na řazení UTF8?

  2. 5 výkonných funkcí Microsoft Access

  3. Je možné vidět, jaká data byla změněna dotazem?

  4. Jak můžete zjistit, zda se používá balíček, procedura nebo funkce PL/SQL?