Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:in dữ liệu chỉ một lần cho mỗi nhóm

Nếu bạn muốn nó được thực hiện trong truy vấn MySQL, nó thực sự là rắc rối hơn đáng giá. Đối với một, cú pháp thực sự phức tạp (như tôi nhớ lại) để có một tên nhóm được liệt kê ở đầu mỗi nhóm. Và kết quả vẫn được coi là hàng, vì vậy tên nhóm sẽ được coi như một hàng với tất cả các cột khác là Null, vì vậy bạn sẽ không thực sự tiết kiệm bất kỳ thời gian hoặc công sức nào trong tập lệnh PHP vì nó phải thực hiện câu lệnh if để nắm bắt khi nó chạm vào tên nhóm thay vì dữ liệu nhóm.

Nếu bạn muốn nó được thực hiện bởi vòng lặp while trong PHP, thì Johan đã đi đúng hướng. Tôi sử dụng thông tin sau cho một tình huống tương tự:

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

Rõ ràng là dữ liệu tiếng vọng sẽ được thiết lập để lặp lại các phần của dữ liệu theo cách bạn muốn. Tuy nhiên, $ prev_group / $ curr_group được thiết lập để lần duy nhất chúng không khớp là khi bạn ở trong một nhóm mới và do đó bạn muốn in tiêu đề của một số loại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chèn tất cả dữ liệu $ _POST vào mysql bằng PHP?

  2. JSON và tải hình ảnh lên máy chủ

  3. Mối quan hệ JPA OneToMany / ManyToOne không hoạt động - Tôi đang thiếu điều gì?

  4. Máy khách dòng lệnh MySQL dành cho Windows

  5. Cách tốt nhất để lưu trữ và truy xuất các từ đồng nghĩa trong cơ sở dữ liệu mysql