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

Perulangan melalui MySQL, gabung kiri di php vs. 2 kueri terpisah

Satu permintaan baik-baik saja. Seperti yang Anda miliki, dan mungkin pilihan yang lebih baik. Anda harus mencari tahu mana yang lebih efisien, membiarkan MySQL mengambil beban, atau jaringan dan PHP mengambil beban. Jauh lebih baik membiarkan PHP mengambil beban daripada MySQL, tetapi jika MySQL memiliki fitur "inbuilt", seperti pengelompokan yang Anda inginkan, maka tinggalkan MySQL dan simpan lalu lintas jaringan.

Untuk membuatnya berfungsi:tambahkan "ORDER BY p.post_id, pc.comment_id" ke kueri Anda - ini akan mendapatkan hasil secara berurutan.

Kemudian, jika Anda harus membangun ke dalam array (walaupun Anda mungkin dapat memproses secara langsung tanpa menggunakan array, metodenya akan serupa):

$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. Nama Tabel/Entitas Dinamis dalam Doctrine 2

  2. Konektor MySQL/python tidak berfungsi di Django

  3. masukkan nilai tanpa menyetel kunci utama

  4. cara menambahkan jam dan menit di mysql curdate

  5. cara menggunakan objek koneksi PDO di file yang berbeda