Php MySQL查询计数()

Php MySQL查询计数(),php,mysql,Php,Mysql,当我尝试此查询时: mysql_query("SELECT COUNT(id) AS `unique`, impressions FROM statistic WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "'") or die(mysql_error()); 我看到此错误消息: 如果没有GROUP BY子句,则在没有GROUP列的情况下混

当我尝试此查询时:

mysql_query("SELECT COUNT(id) AS `unique`, impressions 
             FROM statistic 
             WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "'") or die(mysql_error());
我看到此错误消息:

如果没有GROUP BY子句,则在没有GROUP列的情况下混合GROUP列(MIN()、MAX()、COUNT()、…)是非法的


我不知道这是什么错误,我想有人可以帮我:)。

WHERE
子句后面添加这一行

mysql_query("SELECT COUNT(id) AS `unique`, impressions 
             FROM statistic 
             WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "'
             GROUP BY impressions") or die(mysql_error());

WHERE
子句后添加此行

mysql_query("SELECT COUNT(id) AS `unique`, impressions 
             FROM statistic 
             WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "'
             GROUP BY impressions") or die(mysql_error());

count是一个组函数,除非group子句中提到,否则不能选择另一个具有count的列

  mysql_query("SELECT COUNT(id) AS `unique`, impressions FROM 
statistic WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "' 
GROUP BY impressions")

count是一个组函数,除非group子句中提到,否则不能选择另一个具有count的列

  mysql_query("SELECT COUNT(id) AS `unique`, impressions FROM 
statistic WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "' 
GROUP BY impressions")

当您在
COUNT、MIN、MAX、AVG
聚合函数中使用一列时,必须在
groupby
子句中提及该列,如下所示:

mysql_query("SELECT COUNT(id) AS `unique`, impressions FROM statistic WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "' GROUP BY id") or die(mysql_error());

p.S.mysql_*函数已被弃用,使用PDO或MySQLi函数更安全,以避免sql注入和其他sql冲突。

当您在
COUNT、MIN、MAX、AVG
聚合函数中使用列时,您必须在
GROUP BY
子句中提及该列,如下所示:

mysql_query("SELECT COUNT(id) AS `unique`, impressions FROM statistic WHERE FROM_UNIXTIME(time_add, '%d.%m.%Y') = '" . date('d.m.Y', time()) . "' GROUP BY id") or die(mysql_error());

p.S.mysql_*函数已被弃用,使用PDO或MySQLi函数更安全,以避免sql注入和其他sql冲突。

错误似乎很明显,如果没有group by子句,则无法使用聚合函数:您希望实现什么?您想为特定印象设置计数(id)吗?您可能需要添加group by impression,因为您不能同时使用Count函数和impression。impression应在group by语句中显示。请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO、.PDO或MySQLi更好?错误似乎很明显,在没有GROUPBY子句的情况下无法使用聚合函数:您希望实现什么?您想为特定印象设置计数(id)吗?您可能需要添加group by impression,因为您不能同时使用Count函数和impression。impression应在group by语句中显示。请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果选择PDO、.PDO或MySQLi更好?聚合函数中使用的列不是
group by
子句中需要使用的列-使用聚合函数将默认按所有列进行分组,但选择的第二列(
impressions
)不是聚合函数,需要分组才能在查询“'GROUP BY id”中工作。这不起作用。您需要使用Group by impressions来实现以下功能。聚合函数中使用的列不是
Group by
子句中需要使用的列-使用聚合函数将默认按所有列进行分组,但第二列是选中的(
impressions
)不是聚合函数,需要分组才能在查询“'GROUP BY id”中工作。这不起作用。您需要使用“按印象分组”来完成以下工作。