0

当我尝试这个查询时:

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(),...) 是非法的

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

4

3 回答 3

1

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());
于 2012-08-06T23:43:37.553 回答
1

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")
于 2012-08-06T23:43:41.590 回答
1

当您在聚合函数中使用列时,您必须在子句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());

PS mysql_* 函数已弃用,使用 PDO 或 MySQLi 函数更安全,以避免 sql-injections 和其他 sql 违规。

于 2012-08-06T23:43:57.533 回答