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

Vòng qua MySQL bên trái tham gia vào php so với 2 truy vấn riêng biệt

Một truy vấn là tốt. Khi bạn có nó, và có lẽ là opton tốt hơn. Bạn phải tìm ra cách nào hiệu quả hơn, để MySQL chịu khó hoặc mạng và PHP chịu áp lực. Tốt hơn rất nhiều nếu để PHP chịu nhiều áp lực hơn MySQL, nhưng khi MySQL có các tính năng "sẵn có", chẳng hạn như nhóm bạn mong muốn, sau đó rời khỏi MySQL và tiết kiệm lưu lượng mạng.

Để làm cho việc này hoạt động:hãy thêm "ORDER BY p.post_id, pc.comment_id" vào truy vấn của bạn - điều này sẽ nhận được kết quả theo thứ tự.

Sau đó, nếu bạn phải xây dựng thành một mảng (mặc dù bạn có thể xử lý trực tiếp mà không cần sử dụng một mảng, phương pháp sẽ tương tự):

$lastPostID = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if ($lastPostID <> $row['post_id']) {
        $lastPostID  = $row['post_id'];
        $answers[$lastPostID] = array('post_id' => $row['post_id'],
                                      'author_id' => $row['author_id'],
                                      etc
                                      'comments' => array() );
    }
    $answers[$lastPostID]['comments'][] = array('comment_id' => $row['comment_id'], 'coment' => $row['comment'] etc);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ý tưởng tốt / Ý tưởng xấu? Sử dụng MySQL RAND () bên ngoài một tập hợp nhỏ các kết quả truy vấn con?

  2. Có MySQL tương đương với TIMESTAMP VỚI KHU VỰC THỜI GIAN của Oracle không?

  3. Làm cách nào để tăng tốc độ tạo bảng MySQL từ tệp CSV lớn?

  4. Hiệu suất trình điều khiển JDBC XA so với không XA?

  5. quy ước đặt tên mysql