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
如果您想计算这些列的重复项数。
这里是分页查询
$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
如果您想计算这些列的重复项数。