Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pętla przez MySQL pozostawiła sprzężenie w php kontra 2 oddzielne zapytania

Jedno zapytanie jest w porządku. Jak masz i chyba lepszy wariant. Musisz zastanowić się, co jest bardziej wydajne, aby MySQL odciążył, czy sieć i PHP. O wiele lepiej jest pozwolić PHP na przeciążenie niż MySQL, ale tam, gdzie MySQL ma „wbudowane” funkcje, takie jak pożądane grupowanie, opuść MySQL i zapisz ruch sieciowy.

Aby to zadziałało:dodaj do zapytania „ORDER BY p.post_id, pc.comment_id” — w ten sposób wyniki zostaną uporządkowane.

Następnie, jeśli musisz wbudować w tablicę (chociaż możesz być w stanie przetwarzać bezpośrednio bez użycia tablicy, metoda będzie podobna):

$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. MySQL FULLTEXT nie działa

  2. Ostrzeżenie wywołane przez wstawienie 4-bajtowego kodu Unicode do mysql

  3. Gdzie ustawić kodowanie znaków w aplikacji Java Swing, aby móc pisać w języku hindi do bazy danych MySQL?

  4. ładowanie enwiki-latest-categorylinks.sql do mysql

  5. Jak ekstrapolować dane przez Mysql i umieścić w tablicy?