嗨,大家好,当谈到查询的时候,我有些不知所措。我有一个喜欢评论系统。我想要做的是获得最喜欢的最古老的评论的ID。如何获取SQL中最早日期和最多数量的评论的ID?
这是我的桌子。
CREATE TABLE `wallcomments` (
`c_id` int(11) NOT NULL,
`parent_id` bigint(20) NOT NULL,
`userid` int(11) NOT NULL,
`comments` text NOT NULL,
`date_created` int(11) NOT NULL,
`post_id` bigint(20) NOT NULL,
`for_image` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'no=post, yes=imagePoPup',
`clikes` mediumint(6) NOT NULL,
`uip` char(30) NOT NULL,
`tagedpersons` mediumtext NOT NULL,
`comment_image` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
这是我的PHP函数强大的文本。
public function GetMostLovedComments($CommentPostID)
{
global $DBConnection;
$cond = '';
$cond = " AND wallcomments.parent_id = 0"; // only selects comments and not replies
$query_pc = "SELECT c_id, MAX(clikes) AS max
FROM wallcomments
WHERE post_id = '.$CommentPostID. $cond .'";
$result_pc = mysqli_query($DBConnection, $query_pc);
$row_pc = mysqli_fetch_array($result_pc);
$most_likes = $row_pc['max'];
$cc_id = $row_pc['c_id'];
$query = "SELECT date_created, MAX(date_created) AS min
FROM wallcomments
WHERE post_id = '.$CommentPostID. $cond .'";
$result = mysqli_query($DBConnection, $query);
$row = mysqli_fetch_array($result);
$oldest_c = $row['min'];
$query3 = "SELECT c_id
FROM wallcomments
WHERE date_created = '.$oldest_c'";
$result3 = mysqli_query($DBConnection, $query3);
$row3 = mysqli_fetch_array($result3);
$com_id = $row3['c_id'];
return $oldest_c;
}
最clikes的wallcomment所以做你想要的一个拥有最高的喜欢度,如果连在一起,则使用最早的日期...或者你想要最古老的日期,并且如果并列,可以获得最喜欢的日期?你不能做的是获得最喜欢的那个,如果它不是最古老的,这是我认为你所要求的。 – xQbert
你将不得不为100个或更多喜欢的最古老的评论选择一个范围。 – jmarkmurphy
和max(date_created)会返回最新的一个,而不是最早的...也许您希望min(date_Created)为min。 – xQbert