计算表mysql中的所有项目加上获取记录

时间:2014-02-07 20:24:45

标签: php mysql count

嗨,我有这种情况:

$query = $db->query('SELECT COUNT(*),* FROM memberFileReports');

$data = $query->fetch(PDO::FETCH_ASSOC);

print_r($data);

它无法正常工作?任何想法为什么以及如何同时计算和获取所有项目,如果我想计数(*)然后下一步选择将有限制0,5?

3 个答案:

答案 0 :(得分:2)

使用此

   SELECT * , COUNT(*) FROM memberFileReports Group by column_id

而不是这个

   SELECT COUNT(*),* FROM memberFileReports

修改

试试这个

   $data = $query->fetchAll();

而不是

  $data = $query->fetch(PDO::FETCH_ASSOC);

答案 1 :(得分:2)

这是你要找的吗?

SELECT * , CONCAT('', (SELECT COUNT(*) FROM memberFileReports)) AS total 
FROM memberFileReports LIMIT 0,5

编辑1:请注意,'total'将是一个字符串

编辑2:据我所知,你想得到表中的总行数,但只选择其中的5行(例如)

编辑3:大写......和拼写错误

答案 2 :(得分:0)

我知道这篇文章有点晚了但我想我会告诉你,你只得到一行的原因是因为你使用的是聚合函数“COUNT()”。该函数使得结果返回一行。在多行中显示内容的方法是在select语句中使用“GROUP BY”,它将按照您告诉它的条件对数据进行分组。

示例...假设我们有一个包含3个用户的示例表..

一个人有10次互动

一个3

和一个33:

SELECT e.UserID, COUNT(e.interactions) as num_interactions FROM example e GROUP BY e.UserID;

将显示用户在虚拟示例表中进行的交互次数。

输出:

UserID     num_interactions

1           3

2           10

3           33

没有GROUP BY聚合会使输出看起来像这样:

UserID     num_interactions

1           46

仅供将来参考:)