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

MySQL:tisk dat pouze jednou pro každé seskupení

Pokud to chcete udělat v dotazu MySQL, je to upřímně větší problém, než to stojí za to. Za prvé, syntaxe je opravdu podivná (jak si vzpomínám), aby byl název skupiny uveden v horní části každého seskupení. A výsledky jsou stále považovány za řádky, takže název skupiny bude považován za řádek se všemi ostatními sloupci jako Null, takže ve skriptu PHP opravdu neušetříte žádný čas ani úsilí, protože musí provést příkaz if zachytit, když narazí na název skupiny místo na data skupiny.

Pokud to chcete udělat pomocí smyčky PHP while, Johan je na správné cestě. Pro podobnou situaci používám následující:

$result = $sql->query($query);

$prev_group = "";

while($data = $result->fetch_assoc()){
   $curr_group = $data['group'];
   if ($curr_group !== $prev_group) {
      echo "<h1>$curr_group</h1>";
      $prev_group = $curr_group;
    }
    else {
        echo $data;
        .....
     }

Je zřejmé, že echo data by byla nastavena tak, aby odrážela části dat tak, jak chcete. Ale $prev_group/$curr_group je nastavena tak, že se nebudou shodovat pouze tehdy, když jste v nové skupině a chcete tedy vytisknout nějaké záhlaví.



  1. ROZLIŠIT sloupec v databázi

  2. porovnejte hodnotu se všemi poli tabulky v mysql

  3. Funkce IIf() vs. Příkaz IIf().

  4. Poskytovatelé členství/role ASP.NET pro MySQL?