当我使用count()函数时,MySQL返回一行。我需要对分页系统使用count函数,我没有更好的主意。 我的SQL是:
SELECT *, count(id_question) AS num FROM `questions` LIMIT 0, 10
答案 0 :(得分:3)
当您使用任何aggregate function时,如果没有group by
子句,则只能看到一个结果。
答案 1 :(得分:1)
COUNT()是一个聚合函数,因此将所有行组合在一起。如果您需要所有行的计数,只需计算以您正在使用的任何语言返回的行数。
答案 2 :(得分:0)
SQL不允许聚合整个表并同时返回所有行。
您必须使用两个查询,一个用于总行数(count),另一个用于行本身。
答案 3 :(得分:0)
你试过......
SELECT *, count(*) AS num FROM `questions` LIMIT 0, 10
或者只是使用mysql_num_rows()来获取计数?
答案 4 :(得分:0)
由于count是一个聚合函数,因此它只会返回一行。您将有两个使用两个查询,一个用于选择,一个用于计数。 或者,您可以执行嵌套选择:
SELECT *, (SELECT count(id_question) from 'questions') AS num FROM `questions` LIMIT 0, 10
答案 5 :(得分:0)
您可以在正常结果查询中使用mysql_num_rows($queryHandle)
。一个例子:
$query = 'SELECT * FROM `questions` LIMIT 0, 10';
$queryHandle = mysql_query($query);
$count = mysql_num_rows($queryHandle);
$firstRow = mysql_fetch_assoc($queryHandle);
答案 6 :(得分:0)
尝试:
SELECT * FROM `questions` a
INNER JOIN (
SELECT count(`id_question`) as `num`
FROM `questions`
) b
LIMIT 0, 10;
现在,每一行都会将表的总行数计为一个名为num
的列。