MYSQL:GROUP BY 问题与 ORDER BY

MYSQL : GROUP BY issues With ORDER BY

这里是分页查询

$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);

    if ($page <= 0) $page = 1;

    $per_page = 2; // Set how many records do you want to display per page.

    $startpoint = ($page * $per_page) - $per_page;

    $statement = "`message_box` WHERE reciver = '".dec($_SESSION['user_reporter'])."' AND status='0' GROUP BY `sender` ORDER BY `date_added` DESC";

    $result = mysql_query("SELECT count(*),id,sender,message,status,date_added FROM {$statement} LIMIT {$startpoint} , {$per_page}");

在显示我的数据的 table 末尾,我调用了我的分页函数(在我的自定义 function.php 中定义)。

因此,对于上述查询,我​​的分页块没有显示。但是当我删除

GROUP BY `sender`

FROM $statement 像这样,

$statement = "`message_box` WHERE reciver = '".dec($_SESSION['user_reporter'])."' AND status='0' GROUP BY `sender` ORDER BY `date_added` DESC";

分页显示和工作正常,但我想要 GROUP BY sender 子句。

抱歉我的英语不好....请...帮助!

这个查询:

SELECT count(*), id, sender, message, status, date_added
FROM {$statement}
LIMIT {$startpoint}, {$per_page}

将转到 return 一行,而不管 LIMIT 子句如何。它是一个没有 GROUP BY 子句的聚合查询。这样的查询是对整个 table 的聚合,根据定义 return 一行。

如果需要所有行,请删除 count(*)。添加 GROUP BY id, sender, message, status, date_added 如果您想计算这些列的重复项数。