Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:отпечатване на данни само веднъж за всяко групиране

Ако искате да го направите в MySQL заявката, честно казано е повече неприятности, отколкото си струва. От една страна, синтаксисът е наистина нестабилен (доколкото си спомням) да има име на група, посочено в горната част на всяко групиране. И резултатите все още се третират като редове, така че името на групата ще се третира като ред с всички останали колони като Null, така че наистина няма да спестите време или усилия в PHP скрипта, тъй като той трябва да изпълни оператор if за да улови, когато удари име на група вместо данните на групата.

Ако искате да бъде направено от PHP цикъла while, Йохан е на прав път. Използвам следното за подобна ситуация:

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

Очевидно данните за ехото ще бъдат настроени да отразяват частите от данните по желания от вас начин. Но $prev_group/$curr_group е настроен така, че единственият път, когато те няма да съвпадат, е когато сте в нова група и по този начин искате да отпечатате заглавка от някакъв вид.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стойностите за географска ширина и дължина се запазват като низове или числа?

  2. Използвайте wp_query след промяна на базата данни чрез нов wpdb

  3. Какво е ниво на изолация на Jooq Transaction? Може ли да се случи мръсно четене?

  4. MySQL индексиране и използване на сортиране на файлове

  5. групово вмъкване на списъчни стойности с SQLAlchemy Core