Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:mencetak data hanya sekali untuk setiap pengelompokan

Jika Anda ingin itu dilakukan dalam kueri MySQL, sejujurnya itu lebih merepotkan daripada nilainya. Untuk satu, sintaksnya benar-benar miring (seingat saya) untuk memiliki nama grup yang tercantum di bagian atas setiap pengelompokan. Dan hasilnya masih diperlakukan sebagai baris, sehingga nama grup akan diperlakukan seperti baris dengan semua kolom lainnya sebagai Null, jadi Anda tidak akan benar-benar menghemat waktu atau tenaga dalam skrip PHP karena harus melakukan pernyataan if untuk menangkap ketika mengenai nama grup, bukan data grup.

Jika Anda ingin itu dilakukan oleh loop sementara PHP, Johan berada di jalur yang benar. Saya menggunakan yang berikut ini untuk situasi serupa:

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

Jelas data gema akan diatur untuk menggemakan bagian data seperti yang Anda inginkan. Tetapi $prev_group/$curr_group diatur sehingga satu-satunya waktu mereka tidak cocok adalah ketika Anda berada di grup baru dan dengan demikian ingin mencetak semacam header.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan nama kolom skema di sqlsoup dengan python?

  2. php tidak akan memasukkan data ke dalam database

  3. Mysql:Menghapus semua baris yang lebih lama dari 5 tahun dalam setiap 10 detik

  4. server mysql telah hilang kesalahan saat menginstal migrasi (laravel)

  5. Mendapatkan java.sql.SQLException:Operasi tidak diizinkan setelah ResultSet ditutup