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

MySQL:drukowanie danych tylko raz dla każdej grupy

Jeśli chcesz, aby zostało to zrobione w zapytaniu MySQL, jest to naprawdę więcej kłopotów niż jest to warte. Po pierwsze, składnia jest naprawdę dziwna (o ile pamiętam), aby nazwa grupy była wymieniona na górze każdej grupy. Wyniki są nadal traktowane jako wiersze, więc nazwa grupy będzie traktowana jako wiersz ze wszystkimi pozostałymi kolumnami jako Null, więc nie zaoszczędzisz tak naprawdęczasu ani wysiłku w skrypcie PHP ponieważ musi on wykonaćinstrukcję if złapać, gdy trafi na nazwę grupy zamiast danych grupy.

Jeśli chcesz, aby wykonała to pętla while PHP, Johan jest na dobrej drodze. W podobnej sytuacji używam następującego:

$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;
        .....
     }

Oczywiście dane echa zostałyby skonfigurowane tak, aby odbijały części danych tak, jak chcesz. Ale $prev_group/$curr_group jest skonfigurowana tak, że nie będą pasować tylko wtedy, gdy jesteś w nowej grupie i chcesz wydrukować jakiś nagłówek.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie GROUP_CONCAT w podzapytaniu w MySQL

  2. Przesyłanie do Mysql przy użyciu PHP z Salt&MD5

  3. Jak ustawić minutnik w mysql

  4. mysql problem z informacją_schema.tables

  5. Jaki jest rozmiar pamięci BIT(1)?