sql >> Databasteknik >  >> RDS >> Mysql

MySQL:skriver ut data bara en gång för varje gruppering

Om du vill att det ska göras i MySQL-frågan är det ärligt talat mer besvär än det är värt. För det första är syntaxen riktigt knäpp (som jag minns) att ha ett gruppnamn listat överst i varje gruppering. Och resultaten behandlas fortfarande som rader, så gruppnamnet kommer att behandlas som en rad med alla andra kolumner som Null, så du kommer inte att spara någon tid eller ansträngning i PHP-skriptet eftersom det måste göra en if-sats att fånga när den träffar ett gruppnamn istället för gruppdata.

Om du vill att det ska göras av PHP while-loop är Johan på rätt spår. Jag använder följande för en liknande situation:

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

Uppenbarligen skulle ekodata ställas in för att eka delarna av datan som du vill. Men $prev_group/$curr_group är inställd så att den enda gången de inte matchar är när du är i en ny grupp och därför vill skriva ut en rubrik av något slag.



  1. SQL Server 2017 Management Tools

  2. Jquery onchange problem i php

  3. SQL oracle nybörjarfrågor

  4. EXTRACT() Exempel – MySQL