sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bygger man trådede kommentarer med 1 eller 2 forespørgsler?

Hvis du kun har brug for 2 niveauer, er her en måde med én forespørgsel:

Dit bord - id, parent_id, comment kolonner

Kode

$rows = mysql_query('
  select *
  FROM
    comments
  ORDER BY
    id DESC');

$threads = array();
foreach($rows as $row) {
  if($row['parent_id'] === '0') {
    $threads[$row['id']] = array(
      'comment' => $row['comment'],
      'replies' => array()
    );
  } else {
    $threads[$row['parent_id']]['replies'][] = $row['comment'];
  }
}

I $threads du vil have alle dine hovedtråde og $threads[$id]['replies'] holder alle svar. Trådene er sorteret - senest =først, tilføj noget personsøgning, og du er godt i gang.



  1. SQL:Sådan vælger du rækker, der summerer til en bestemt værdi

  2. Brug OBJECTPROPERTY() til at bestemme, om et objekt er en visning i SQL Server

  3. Hvordan vælger jeg et fast antal rækker for hver gruppe?

  4. Valg af processor til SQL Server 2012