1

私はコメントに取り組んでいます.コメントの返信のリストはn番目のレベルのようですが、返信の数を表示する必要があります

parent
       ->child
            -> child
                -> child
Parent
      -> child
      ->child
          ->child

私のSqlは:

CREATE TABLE IF NOT EXISTS `comment` (
  `comment_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'This is primary key of the table',  
  `parent_comment_id` bigint(11) NOT NULL, 
  `text` text NOT NULL,
  PRIMARY KEY (`comment_id`),
  KEY `user_id` (`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;



INSERT INTO `comment` (`comment_id`, parent_comment_id`, `text`) VALUES
(1, 0, 'Parent'),
(2, 1, 'child'),
(3,  2, 'child'),
(4,  3, 'child'),
(5,  1, 'child2'),
(6, 0, 'Parent2'),
(7,  6,'child of parent2');

返信の数を取得する方法を教えてください。

4

1 に答える 1

0
SELECT COUNT (*) FROM `comment` WHERE parent_comment_id = :id

コメントへの返信数が表示されます:id。スレッド全体のコメント数が必要な場合は、このクエリを複数回実行して、 に異なる値を渡す必要があります:idまたは、ネストされたセットを使用して親子関係を保存することもできます。

于 2012-10-23T12:24:35.133 に答える