当我尝试此查询时:
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列(MIN(),MAX(),COUNT(),...)没有GROUP列是非法的
我不知道这个错误是什么,我认为有人可以在这里帮助我:)。
答案 0 :(得分: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());
答案 1 :(得分: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")
答案 2 :(得分: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());
P.S。不推荐使用mysql_ *函数,使用PDO或MySQLi函数更安全,以避免sql注入和其他sql违规。