sql >> データベース >  >> RDS >> Mysql

MySQL:グループ化ごとに1回だけデータを印刷する

    MySQLクエリで実行したい場合は、正直なところ、それが価値があるよりも厄介です。 1つは、各グループの上部にグループ名がリストされているという構文は(私が覚えているように)非常に不安定です。また、結果は引き続き行として扱われるため、グループ名は他のすべての列がNullである行のように扱われるため、ifステートメントを実行する必要があるため、PHPスクリプトで時間や労力を節約することはできません。グループデータではなくグループ名にヒットしたときにキャッチします。

    PHPのwhileループで実行したい場合は、Johanが正しい方向に進んでいます。私は同様の状況で以下を使用します:

    $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. PDOを使用したPHPでの各登録ユーザーのデータの取得と表示

    2. MySQLテーブルをUTF-8に変更するにはどうすればよいですか?

    3. 列値に対するMySQL全文検索?

    4. 自動インクリメントを使用したmysqlの2列の主キー